Questo stralcio di codice è preso direttamente dal book di cakephp...

Codice PHP:
$this->User->find('all', array(
    
'contain'=>array(
        
'Profile',
        
'Account' => array(
            
'AccountSummary'
        
),
        
'Post' => array(
            
'PostAttachment' => array(
                
'fields' => array('id''name'),
                
'PostAttachmentHistory' => array(
                    
'HistoryNotes' => array(
                        
'fields' => array('id''note')
                    )
                )
            ),
            
'Tag' => array(
                
'conditions' => array('Tag.name LIKE' => '%happy%')
            )
        )
    )
)); 
Non fa altro che usare il Containable Behavior che premette di recuperare i dati che realmente ci interessano limitando le query da eseguire a differenza di recursive...

Il mio codice è praticamente simile solo che non recupera i dati dal Model Destination...

Codice PHP:

$order 
$this->Order->find('first',    array(
                                        
'contain' =>    array(
                                                        
'User' =>    array(
                                                                    
'Destination' =>    array(
                                                                                        
'fields' => array('id''contact')
                                                                                        ),
                                                                    
'fields' => array('id''claim')
                                                                    ),
                                                        
'Payment' => array('fields' => array('id''method'))
                                                        ),
                                        
'conditions' => array('Order.id' => $id),
                                        
'fields' => array('id''items''products')
                                        )
                            ); 
Idee sul perché?

Le relazioni sono
- Order belongsTo User hasOne Destination
- Order hasOne Payment