Cakephp ORM正在拉动每一列

时间:2015-12-17 21:28:18

标签: php cakephp

我有代码片段,我希望以下查询拉出与类别相关的所有产品,属于很多关系。

虽然有效,但即使我声明了一个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();

1 个答案:

答案 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();