CakePHP左连接排序问题
我使用的是CakePHP2.x版本,下面是我的datagrid视图和控制器,我希望区域和框都按用户排序。框可以排序,但区域优先排序正在工作,之后当单击排序时,页面刷新,但不排序。原因可能是什么CakePHP左连接排序问题,php,sorting,cakephp,pagination,cakephp-2.0,Php,Sorting,Cakephp,Pagination,Cakephp 2.0,我使用的是CakePHP2.x版本,下面是我的datagrid视图和控制器,我希望区域和框都按用户排序。框可以排序,但区域优先排序正在工作,之后当单击排序时,页面刷新,但不排序。原因可能是什么 内部的 外部的 $this->paginate['contain']=array(); $this->paginate['joins']=array( 排列( “表”=>“a_表”, “别名”=>“A”, '类型'=>'左', “条件”=>数组( “A.key=B.id”, “A.状态”=>“活动”
内部的
外部的
$this->paginate['contain']=array();
$this->paginate['joins']=array(
排列(
“表”=>“a_表”,
“别名”=>“A”,
'类型'=>'左',
“条件”=>数组(
“A.key=B.id”,
“A.状态”=>“活动”
)
)
);
$conditions=array();
$this->paginate['fields']=array('B.*,'A.title');
$this->paginate['order']=array('A.title','B.title');
如果(!empty($this->request->data['SignalBox']))
{
如果($this->request->data['SignalBox']['box'])
$conditions['B.title LIKE']='%.$this->request->data['SignalBox']['box'].%';
如果($this->request->data['SignalBox']['area'])
$conditions['A.title']=$this->request->data['SignalBox']['area'];
}
如果($条件)
$this->paginate['conditions']=$conditions;
$data=$this->paginate('B');
$this->set('data',$data);
最终解决方案是,更改模型
根据提交的排序列
$model ='A';
if($this->request->param('named.sort')){
$submittedModel = explode('.',$this->request->param('named.sort'));
$model =$submittedModel [0];
}
然后更改联接查询并
$data=$this->paginate('B')代码>
if(A)
{
A JOIN query
}
else
{
B JOIN query
}