我有代码片段,我希望以下查询拉出与类别相关的所有产品,属于很多关系。
虽然有效,但即使我声明了一个select,它仍会检索产品中的每一列,我只想要我声明的四列。
我查看并阅读http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html
上的文档$Product= $categoryObj->find()->contain([
'Product' => function ($q) {
return $q
->select(['name', 'url', 'published', 'site_id'])
->where(['published' => 1, 'site_id' => 2]);
}
])
->where(['id'=> $id])
->toArray();
答案 0 :(得分:0)
尝试在autoFields(false)
之后添加select()
。代码如下:
$Product= $categoryObj->find()
->contain([
'Product' => function ($q) {
return $q
->select(['name', 'url', 'published', 'site_id'])
->autoFields(false)
->where(['published' => 1, 'site_id' => 2]);
}
])
->where(['id'=> $id])
->toArray();