Salutations,containable on hasMany relation
J'essaye de démonter la requête renvoyée par find call en utilisant containable dans CakePHP. Par exemple, j'ai 2 modèles, User et Post. L'utilisateur a plusieurs messages.
Maintenant, quand je me sers maîtrisable de find appeler comme ceci:
$User->id = 1;
$User->find('first', array(
'fields' => array('id'),
'contain' => array('Post')
))
Il ne reviendra pas le message associé, au lieu sera juste retourner l'identifiant de l'utilisateur.
Cela fonctionne cependant si j'essaie de récupérer les données dans l'autre sens. i.e. cela fonctionne:
$Post->find('first', array(
'fields' => array('id', 'user_id'),
'conditions' => array('Post.user_id' => 1),
'contain' => array('User')
))
cela ne:
$Post->find('first', array(
'fields' => array('id'),
'conditions' => array('Post.user_id' => 1),
'contain' => array('User')
))
A partir des valeurs de retour, je suppose alors que pour la maîtrisable aux travaux, le foreignKey doit être dans les champs. Comment puis-je filtrer les champs Utilisateur lors du premier appel, car l'association de l'utilisateur est stockée dans Post.user_id?
Toute aide est grandement appréciée! Merci.
-aw
Est-ce que l'utilisateur Message belongTo? Peut-être que vous avez besoin de définir les relations dans les deux sens pour que tout fonctionne. –
@deceze J'ai essayé le réglage récursif à 9999 (je sais que 2 est suffisant, mais humour moi). Mais ça ne me donne pas le post associé, ça marche si je ne mets pas la spécification des champs là-bas. i. e find ('all', array ('contain' => 'Post')). mais j'ai besoin de filtrer les champs de l'utilisateur. –
Pouvez-vous poster le code démontrant comment vous avez défini le tableau $ hasMany de votre modèle utilisateur? –