cakephp查询选择器不返回指定的字段

时间:2016-09-26 15:05:52

标签: cakephp cakephp-3.0

我的查询选择器出了问题。我的查询看起来像

   $products = $this->Categories->find()
                        ->where(['active' => 1])
                        ->contain(['Products' => function($q) {
                                return $q;
                            }
                        ]);

它返回类别列表,以及每个类别的嵌套产品数组。在这种情况下,它从产品表中撤回所有字段。

但是只要我像这样更改contain

->contain(['Products' => function($q) {
                                    return $q->select(['code', 'name']);
                                }
                            ]);

然后products数组为空。有什么东西我错过了吗?

1 个答案:

答案 0 :(得分:0)

您必须在所选字段列表中包含category_id

return $q->select(['code', 'name', 'category_id']);

否则,蛋糕不知道如何将产品与其类别联系起来。

通常你会看到一个警告,但也许你关闭了调试模式