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 和 GROUP BY

$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 回答