限制cakephp查询中的选定列

时间:2012-05-16 12:34:17

标签: sql cakephp-1.3

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

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

其中$ 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',
                                             )
                 )
            )
    ));

谢谢

1 个答案:

答案 0 :(得分:1)

这就是fields parameter的用途。

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