0

我想减少 cakephp 的 find('all') 返回的字段数量,但不知道这是否可行。

$this->Group->find('all', $params);

$参数在哪里

   $params = array(
        'conditions' => array(                
            'Group.featured' => 1,
            ),
        'contain' => array(
                'User',
                'Class' => array(
                'conditions' => array(
                    'Class.exp IS NOT NULL', 
                    'Class.tb <20',
                                             )
                 )
            )
    ));

问题是我的 Class 表有很多我不需要的列并且需要很长时间才能加载,所以我会只选择 5 个字段。这可以在 Cakephp 中完成还是我最好编写一个常规查询?

就像是

   $params = array(
        'conditions' => array(                
            'Group.featured' => 1,
            ),
        'contain' => array(
                'User',
                'Class.a',
                'Class.b', 
                'Class.exp',
                'Class.tb',
                'Class' => array(
                'conditions' => array(
                    'Class.exp IS NOT NULL', 
                    'Class.tb <20',
                                             )
                 )
            )
    ));

谢谢

4

1 回答 1

1

这就是fields参数的用途。

$params = array(
    ...
    'contain' => array(
        'Class' => array(
            'conditions' => array(
                'Class.exp IS NOT NULL', 
                'Class.tb <20',
            ),
            'fields' => array('a', 'b')
        )
    )
);
于 2012-05-16T12:44:04.470 回答