我有一个查询看起来
$entity = $this->Products
->findById($id)
->contain( [ 'Categories',
'Categories.Sizes',
'ProductsPrices.Sizes' => function($q) {
return $q->select('Sizes.name');
}
])->first();在这种情况下,Product,belongTo,a,Category,以及Category hasMany,Sizes,Similerly Product的价格取决于它的大小。
例如,如果一个产品有4个不同的大小,那么它将在ProductsPrices表中有4个价格。
查询正在返回所需的结果,但问题是它正在从每一行返回所有字段。例如,从Categories表中,我只需要它的名称。来自Categories.Sizes的唯一id和名称
我能把它限制在我需要的领域吗?我试过在不同级别上使用->select,但没有起作用。例如,'ProductsPrices.Sizes',我只看到大小查询,而不是ProductsPrices查询
发布于 2016-08-19 16:16:37
阅读更多信息:
http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html
$entity = $this->Products
->findById($id)
->contain( [
'Categories' => function($q){
return $q->select(['name'])
->contain([
'Sizes' => function($q) {
return $q->select(['id','name']);
}
]);
},
// -------------
])->first();https://stackoverflow.com/questions/39043277
复制相似问题