Salut, il n'y a pas de raison spéciale, je trouve que le code est plus clean quand ces infos sont séparées. Dans quel contrôleur mettrais-tu la méthode d'ajout de questions à un évènement ? contrôleur évènement ou question ?
Il y a bien évidemment du code entre le (!empty($data)) et le reste, j'ai mis les 3 petits points : c'est le bout de code qui va renvoyer un message si l'évènement ou la question n'existe pas en fait l'utilisateur choisit plusieurs questions qui sont ajoutées en même temps à l'évènement. mes modèles intermédiaires ne contiennent pas de propriete primaryKey à l'inverse des 3 modèles principaux : class Question extends AppModel { var $name = 'Question'; var $primaryKey = 'question_id'; Au niveau bdd, j'ai respecté la nomenclature, la table intermédiaire comporte 2 champs event_id et question_id C'est la même chose pour la 2eme table intermédiaire, event_id, user_id. La clé primaire de chacune de ces tables est composée de ces 2 champs. Seule différence, la table event_has_users possède d'autres champs, par exemple un champ booléen pour savoir si l'utilisateur fait partie des organisateurs. Magalie On 7 fév, 10:25, Mehdi AMINI <joker....@gmail.com> wrote: > Hello, > > > l'ajout se fait via la fonction add du controlleur EventHasUsers > > Il y a une bonne raison pour créer des modèles et des controlleurs pour > les tables intermédiaires ? On peut manipuler les assoc depuis les 3 > controller/modèle principaux. > > > if (!empty($this->data)) { > > ... > > > > $this->data['EventHasQuestion']['event_id'] = $id; > > > > $this->data['EventHasQuestion']['question_id'] = $value; > > $this->EventHasQuestion->create(); > > if > > (!$this->EventHasQuestion->save($this->data)) { > > $save = FALSE; > > } > > Juste une remarque : tu testes si $this->data contient quelque chose > mais tu n'en tiens pas compte dans la suite... > > Pour l'update, on dirait que Cake considère que question_id est ta clé > primaire du modèle EventHasQuestion, la table contient un champs id ? > > Mehdi --~--~---------~--~----~------------~-------~--~----~ Groupe "Cakephp-fr". Adresse : cakephp-fr@googlegroups.com Pour résilier : cakephp-fr-unsubscr...@googlegroups.com Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr -~----------~----~----~----~------~----~------~--~---