萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> cakephp2.X多表聯合查詢join及使用分頁查詢的方法

cakephp2.X多表聯合查詢join及使用分頁查詢的方法

小編推薦的這篇文章介紹了cakephp2.X多表聯合查詢join及使用分頁查詢的方法,非常實用,有興趣的同學快看看吧

格式化參數:

 代碼如下 復制代碼

publicfunctiongetconditions($data){

  $this->loadModel("Cm.LoginHistory");

  $conditions=array();

  foreach($dataas$key=>$val){

    if($key=='start_date'){

      $conditions['LoginHistory.logintime >=']=trim($val);

    }elseif($key=='end_date'){

      $conditions['LoginHistory.logouttime <=']=trim($val);

    }elseif($key=='selectvsoftid'and$val!=''){

      $conditions['LoginHistory.LOGINSUBSYSTEM LIKE']='%'.trim($val).'%';

    }elseif($key=='username'and$val!=''){

      $conditions['LoginHistory.USERNAME LIKE']='%'.trim($val).'%';

    }elseif($key=='vdevicename'and$val!=''){

      $conditions['LoginHistory.WINDOWNAME LIKE']='%'.trim($val).'%';

    }elseif($key=='selectvsoftid'and$val!=''){

      $conditions['LoginHistory.PHDEVICENAME LIKE']='%'.trim($val).'%';

    }

  }

  return$conditions;

}

分頁查詢:

 代碼如下 復制代碼

$fields=array('LoginHistory.windowname','LoginHistory.loginsubsystem','VirtualDevice.PHDEVICEID','LoginHistory.userid','VirtualDevice.SYSTYPEID','UserInfo.USERNAME','"SUM"(LoginHistory.LOGOUTTIME-LoginHistory.LOGINTIME) moument','UserInfo.USERNAME','DeviceInfo.DEVICENAME');

$group=array('LoginHistory.windowname','LoginHistory.loginsubsystem','LoginHistory.userid','UserInfo.USERNAME','DeviceInfo.DEVICENAME','VirtualDevice.SYSTYPEID','VirtualDevice.PHDEVICEID');

$this->paginate =array('conditions'=>$conditions,'fields'=>$fields,'group'=>$group,'limit'=>9,'joins'=>array(

   array(

     'alias'=>'UserInfo',

     'table'=>'SMM_USERINFO',

     'type'=>'LEFT',

     'conditions'=>' LoginHistory.USERID=UserInfo.USERID ',

   ),

   array(

     'alias'=>'VirtualDevice',

     'table'=>'ET_NMVIRTUALDEVICEINFO',

     'type'=>'LEFT',

     'conditions'=>' LoginHistory.WINDOWNAME=VirtualDevice.DEVICENAME ',

   ),

   array(

     'alias'=>'DeviceInfo',

     'table'=>'ET_NMDEVICEINFO',

     'type'=>'LEFT',

     'conditions'=>' VirtualDevice.PHDEVICEID=DeviceInfo.DEVICEID ',

   ),

 ));

$LoginHistory=$this->paginate('LoginHistory');

$this->set('loginhistory',$LoginHistory);

copyright © 萬盛學電腦網 all rights reserved