0

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

問題は、クラステーブルに不要な列がたくさんあり、ロードに時間がかかるため、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 に答える