选择嵌套HABTM数组的特定字段

I have a tickets table, and a contacts table. A ticket can have many contacts.

I am paginating the tickets table, and want it to select specific fields including the first linked contact form the nested array. No matter what I try, I can't seem to figure this one out (or if it is even possible).

My code:

$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>            
);

(The Contact.0.full_name is causing it to fail. How can I make this work?)

So I can use this column with $this->Paginator->sort.

You cant call columns like this Contact.0.full_name CakePHP doesn't work like that. A valid field name is TableAlias.column_name

You cant use hasMany relation's children into sort operation.

To achieve similar functionality, You can drop hasMany and add hasOne to achieve the desired output. Because there's no schema changes in both relationship types.

$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')
);

Now you can use this column Contact.full_name for sorting purposes.