2

ページネーションで contact_id に関連するすべての連絡先グループ名を見つけたいです。たくさん試しましたが成功しませんでした。多対多の関係があります。contact_id に対してページネーションですべての連絡先グループ名を表示したいだけです。どうすればよいですかそれ?どなたか助けていただける方がいらっしゃいましたら、よろしくお願いいたします。

これは私のページネーションコードです

            $this->paginate = array(
                    'fields' => array(
                                    'DISTINCT Contact.contact_id',
                                    'Contact.first_name',
                                    'Contact.last_name',
                                    'Contact.email',
                                    'Contact.created',
                                    'ContactGroup.name',

                                        ),  
                    'conditions' => array(
                                    $this->conditions,
                                    $query,
                                    array(
                                        'OR' => array(
                                                    array('Contact.first_name LIKE' => "$keyword%"),
                                                    array('Contact.last_name LIKE'  => "$keyword%"),
                                                    array('Contact.middle_name LIKE'=> "$keyword%")
                                                    )
                                            )                       
                                        ),
                    'limit'      => 5,
                    'group'      => array('Contact.contact_id'),

                    );
4

1 に答える 1

0

ここで何を求めているのかわかりません。しかし、仮定によって私はこれを思いついた

DISTINCTとGROUPBYの両方を一緒に使用しないでください

$this->paginate = array(
       'fields' => array(
             'Contact.first_name',
             'Contact.last_name',
             'Contact.email',
             'Contact.created',
       ),  
       'conditions' => array(
           'OR' => array(
             'Contact.first_name LIKE' => $keyword. "%",
             'Contact.last_name LIKE'  => $keyword. "%",
             'Contact.middle_name LIKE'=> $keyword. "%"
            )
        ),
        'limit' => 5,
        'group' => array('Contact.contact_id'),
        'contain' => array('ContactGroup.name')
);

$this->conditionsと$queryが何であるかわかりません。

PS、包含可能な動作を含めるために、モデルにこの行があることを確認してください

public $actsAs = array('Containable'/*, other behaviors */);

または、$ this-> paginateの前に、コントローラーからその場で包含可能な動作を含めることができます

$this->Post->Behaviors->load('Containable');
于 2013-03-08T14:22:43.423 に答える