如何在cakephp中的分页中创建查找所有条件?

时间:2013-03-08 11:20:35

标签: php cakephp cakephp-1.3 cakephp-2.0 cakephp-2.1

我想在分页中找到与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'),

                    );

1 个答案:

答案 0 :(得分: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->条件和$ query。

P.S,请确保您的模型中包含此行以包含Containable Behavior

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

或者您可以在$ this-> paginate

之前从控制器动态包含可包含的行为
$this->Post->Behaviors->load('Containable');