2010-10-05 4 views
0

(CakePHP Version 1.3.4)maîtrisable ne parvient pas à JOIN dans les relations belongsTo quand 'champs' sont utilisés dans CakePHP 1.3.4

je l'association suivante entre un modèle de contact avec des modèles de compte et de test:

class Contact extends AppModel { 
    var $name = 'Contact'; 

    var $actsAs = array('Containable'); 

    var $hasMany = array(
     'Test' => array(
      'className' => 'Test', 
      'foreignKey' => 'contact_id', 
      'dependent' => false 
     ) 
    ); 

    var $belongsTo = array(
     'Account' => array(
      'className' => 'Account', 
      'foreignKey' => 'account_id',        
      'dependent' => false 
     ) 
    ); 
} 

la requête suivante fonctionne très bien:

$contact = $this->Contact->find('first', array(
    'contain' => array(
     'Account', 'Test' 
    ), 

    'conditions' => array(
     'Contact.id' => $contactId 
    ) 
)); 

mais dès que « champs » sont introduits l'association belongsTo avec des sauts de compte, mais l'association hasMany TES t reste bien:

$contact = $this->Contact->find('first', array(
    'contain' => array(
     'Account', 'Test' 
    ), 

    'conditions' => array(
     'Contact.id' => $contactId 
    ), 

    'fields' => array(
     'Contact.id', 'Contact.first_name', 'Contact.last_name', 'Contact.account_id'  
    ) 
)); 

Est-ce que quelqu'un d'autre semble avoir ce problème?

Répondre

0

Oui, j'ai exactement le même problème. J'ai une relation employé belongsTo Adresse et

$this->dataout = $this->Employee->find('all',array(
     'contain' => array('Address.full_name'), 
     'fields' => array('Employee.id','Employee.address_id') 
    )); 

(où Address.full_name est un champ virtuel). Sans la liste de champs fournie, cela fonctionne. Peut-être déposer un rapport de bug?

Questions connexes