Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP左连接排序问题_Php_Sorting_Cakephp_Pagination_Cakephp 2.0 - Fatal编程技术网

CakePHP左连接排序问题

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.状态”=>“活动”

我使用的是CakePHP2.x版本,下面是我的datagrid视图和控制器,我希望区域和框都按用户排序。框可以排序,但区域优先排序正在工作,之后当单击排序时,页面刷新,但不排序。原因可能是什么


内部的
外部的
$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
}