CAKEPHP3查询生成器按嵌套关系排序
order函数的文档不够好。这就是我所拥有的: 表A表B表C 所以我有一个表B,它与表a有多对多关系,也与表C有多对多关系 我需要的是表B的项目列表。它们需要按表a的ID进行分组,然后按表C的ID进行分组 这就是我在Table B函数中的内容:CAKEPHP3查询生成器按嵌套关系排序,cakephp,orm,query-builder,cakephp-3.x,Cakephp,Orm,Query Builder,Cakephp 3.x,order函数的文档不够好。这就是我所拥有的: 表A表B表C 所以我有一个表B,它与表a有多对多关系,也与表C有多对多关系 我需要的是表B的项目列表。它们需要按表a的ID进行分组,然后按表C的ID进行分组 这就是我在Table B函数中的内容: $query=$this->find(); $query->contain([ 'MiddleTableAB.TableA'=> function ($q) { retur
$query=$this->find();
$query->contain([
'MiddleTableAB.TableA'=> function ($q) {
return $q->select(['id','name']);
},
'MiddleTableBC.TableC'=> [
'strategy' => 'select',
'queryBuilder' => function ($q) {
return $q->select(['id','name']);
},
]
]);
//$query->select(['id','description']);
$query->group(['TableA.id','TableC.id']);
$data = $query->all();
但是蛋糕上说没有表格id。
如果我删除了组调用,我将获得生成所需结果所需的所有数据。我怎样才能做到这一点呢?很抱歉,我忽略了问题中的Cakephp版本号(即3)。请查找我的编辑内容,如下所示: 对于Cakephp 3中的多个连接,请检查文档 检查以下示例代码:
$query=$countries->find()
->水合物(假)
->加入([
“城市”=>[
“表”=>“城市”,
'类型'=>'左',
“条件”=>“Country.id=City.Country\u id”
],
“地址”=>[
'表'=>'地址',
'类型'=>'左',
“条件”=>“City.id=地址.City\u id”
]
])
->顺序(['state'=>'DESC'])代码>很抱歉,我忽略了问题中的Cakephp版本号(即3)。请查找我的编辑内容,如下所示:
对于Cakephp 3中的多个连接,请检查文档
检查以下示例代码:
$query=$countries->find()
->水合物(假)
->加入([
“城市”=>[
“表”=>“城市”,
'类型'=>'左',
“条件”=>“Country.id=City.Country\u id”
],
“地址”=>[
'表'=>'地址',
'类型'=>'左',
“条件”=>“City.id=地址.City\u id”
]
])
->顺序(['state'=>'DESC'])代码>此代码对cakephp 2而不是cakephp 3有效。此外,本示例不使用order函数。你能帮我解决我的具体问题吗?谢谢,我很抱歉过度寻找版本号。我相应地修改了答案,检查它是否符合您的需要(Order函数只是查找的另一个嵌套,我将它添加到了答案中)此代码对cakephp 2而不是cakephp 3有效。此外,本示例不使用order函数。你能帮我解决我的具体问题吗?谢谢,我很抱歉过度寻找版本号。我相应地修改了答案,检查它是否符合您的需要(Order函数只是查找的另一个嵌套,我将它添加到了答案中)