Disons que j'ai 3 modèles: Utilisateur, Région, Pays.Création d'une instruction conditionnelle sur plusieurs modèles (CakePHP 1.2.5)
User belongsTo Region
Region belongsTo Country
Chacun de ces modèles utilise le comportement Contenable. J'essaie de trouver des utilisateurs du pays avec le code 'US'. Voici ce que je tente:
$users = $this->User->find('all', array(
'conditions' => array('Country.code' => 'US'),
'contain' => array('Region.Country'),
));
CakePHP se sépare en ce 2 requêtes:
- D'abord, il est l'ID de la sélection pour tous les pays avec le code 'US'.
- Ensuite, il utilise ces identifiants pour sélectionner tous les utilisateurs qui joignent des régions où
region.country_id
est dans cette liste d'ID de pays précédemment récupérée.
En conséquence, je me retrouve avec des erreurs SQL dans mon application depuis mon tableau conditions
contient une référence à Country.code, et la deuxième requête que le gâteau ne construit pas REJOIGNEZ pays.
La meilleure solution Cake que je vois est de construire une sous-requête comme décrit dans la partie Complex Find Conditions du manuel. Cependant, cela semble très compliqué, et est plus d'un hack que je voudrais mettre en œuvre. Y a-t-il un moyen plus facile que je néglige?
Cool, je vais essayer bientôt ... ne pas réaliser les clés du tableau «conditions de (entre autres, comme ' fields 'et' group ') pourraient être passés dans le tableau contains. Je vais donner la coche si ça marche. :) –