我有一个查询
$p = $this->Products
->findById($id)
->select(['name'])
->contain(['Categories.Sizes' => function($q) {
return $q->select(['id', 'name']);
}
]);
仅返回产品的名称而不是产品类别的大小。但是如果删除接受字段名称的select
函数,那么它也会传递大小
有没有解决方案?
答案 0 :(得分:1)
根据CakePHP 3的书,在“Selecting Rows From A Table”区域中,您可以通过将它们包含在select
数组中来指定要返回的字段:
$query = $articles
->find()
->select(['id', 'name']) // <-- Notice this line
->where(['id !=' => 1])
->order(['created' => 'DESC']);
因此,对于您而言,您限制了返回的字段,因为您指定只需要“名称”字段。