我有一张票表和一张联系表。一张票可以有很多联系人。
我正在对ticket表进行分页,并希望它选择特定的字段,包括嵌套数组的第一个链接的联系人。无论我尝试什么,我似乎无法想出这一个(或者甚至可能)。
我的代码:
$this->paginate = array(<br>
'conditions' => array('status_id !=' => '3'),<br>
'limit'=>50,<br>
'fields'=>array('Ticket.title', 'Ticket.ticket_number', 'Priority.name', 'Status.name', 'Contact.0.full_name') <br>
);
(Contact.0.full_name导致它失败。我怎样才能使它工作?)
因此,我可以将此列与$this->Paginator->sort
一起使用。
答案 0 :(得分:0)
你 cant 调用这样的列Contact.0.full_name
CakePHP不能那样工作。有效的字段名称为TableAlias.column_name
您无法将hasMany
关系的子项用于排序操作。
要实现类似功能,您可以删除hasMany
并添加hasOne
以获得所需的输出。因为两种关系类型都没有架构更改。
$this->Ticket->unbindModel(array('hasMany' => array('Contact')));
$this->Ticket->bindModel(array('hasOne' => array('Contact')));
$this->paginate = array(
'conditions' => array('status_id !=' => '3'),
'limit'=>50,
'fields'=>array('Ticket.title', 'Ticket.ticket_number', 'Priority.name', 'Status.name', 'Contact.full_name')
);
现在,您可以使用此列Contact.full_name
进行排序。