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