首页 > 网站 > 建站经验 > 正文

cakephp2.X多表联合查询join及使用分页查询的方法

2024-08-30 19:06:48
字体:
来源:转载
供稿:网友

格式化参数:

  1. publicfunctiongetconditions($data){ 
  2.   $this->loadModel("Cm.LoginHistory"); 
  3.   $conditions=array(); 
  4.   foreach($dataas$key=>$val){ 
  5.     if($key=='start_date'){ 
  6.       $conditions['LoginHistory.logintime >=']=trim($val); 
  7.     }elseif($key=='end_date'){ 
  8.       $conditions['LoginHistory.logouttime <=']=trim($val); 
  9.     }elseif($key=='selectvsoftid'and$val!=''){ 
  10.       $conditions['LoginHistory.LOGINSUBSYSTEM LIKE']='%'.trim($val).'%'
  11.     }elseif($key=='username'and$val!=''){ 
  12.       $conditions['LoginHistory.USERNAME LIKE']='%'.trim($val).'%'
  13.     }elseif($key=='vdevicename'and$val!=''){ 
  14.       $conditions['LoginHistory.WINDOWNAME LIKE']='%'.trim($val).'%'
  15.     }elseif($key=='selectvsoftid'and$val!=''){ 
  16.       $conditions['LoginHistory.PHDEVICENAME LIKE']='%'.trim($val).'%'
  17.     } 
  18.   } 
  19.   return$conditions

分页查询:

  1. $fields=array('LoginHistory.windowname','LoginHistory.loginsubsystem','VirtualDevice.PHDEVICEID','LoginHistory.userid','VirtualDevice.SYSTYPEID','UserInfo.USERNAME','"SUM"(LoginHistory.LOGOUTTIME-LoginHistory.LOGINTIME) moument','UserInfo.USERNAME','DeviceInfo.DEVICENAME'); 
  2. $group=array('LoginHistory.windowname','LoginHistory.loginsubsystem','LoginHistory.userid','UserInfo.USERNAME','DeviceInfo.DEVICENAME','VirtualDevice.SYSTYPEID','VirtualDevice.PHDEVICEID'); 
  3. $this->paginate =array('conditions'=>$conditions,'fields'=>$fields,'group'=>$group,'limit'=>9,'joins'=>array
  4.    array
  5.      'alias'=>'UserInfo'
  6.      'table'=>'SMM_USERINFO'
  7.      'type'=>'LEFT'
  8.      'conditions'=>' LoginHistory.USERID=UserInfo.USERID '
  9.    ), 
  10.    array
  11.      'alias'=>'VirtualDevice'
  12.      'table'=>'ET_NMVIRTUALDEVICEINFO'
  13.      'type'=>'LEFT'
  14.      'conditions'=>' LoginHistory.WINDOWNAME=VirtualDevice.DEVICENAME '
  15.    ),//Vevb.com 
  16.    array
  17.      'alias'=>'DeviceInfo'
  18.      'table'=>'ET_NMDEVICEINFO'
  19.      'type'=>'LEFT'
  20.      'conditions'=>' VirtualDevice.PHDEVICEID=DeviceInfo.DEVICEID '
  21.    ), 
  22.  )); 
  23. $LoginHistory=$this->paginate('LoginHistory'); 
  24. $this->set('loginhistory',$LoginHistory); 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表