Bonjour,

J'ai un petit soucis sur les insertions dans ma bdd.
j'ai une table : films et table : users avec une relation n,n; ce qui me donne une table films_users avec dedans l'id du film et l'id de l'user qui l'a ajouté.

J'ai créé l'interface admin avec le bake. Je n'ai pas fait de model/controller/vue pour les table de jointures , est ce correct ?

Et quand j'ajoute une utilisateur ca fonctionne correctement , un film aussi mais la table de jointure n'a aucune entrée du coup quand je veux regarde le film j'ai une jolie erreur :

SQL Error: 1054: Unknown column 'FilmsUser.film_id' in 'on clause' [CORE\cake\libs\model\datasources\dbo_source.php, line 684]

Si quelqu'un a une idée !
Merci

3 réponses


Grafikart
Réponse acceptée

Tu as bien un champs film_id dans la table de liaison ?

Flohw
Réponse acceptée

pour la création de modele/vue/controlleur pour les tables de jointures, c'est bon pas la peine d'en créer (a moique que tu doives faire des opérations spéciales avec beforeSave par exemple.
pour ajouter quelque chose dans une table de laison en relation n,n il faut que ModelLie->data soit présenté ainsi :

$this->FilmsUser->data = array(
    'Film' => array('id' => 3, /* des infos complémentaires eventuellement mais non prise en compte pour l'insersion dans FilmsUser */),
    'User' => array('id' => 1), /* idem */)
);

ensuite, je ne vois pas pourquoi tu as une relation n,n entre les films et les utilisateur parce que je vois mal comment plusieurs utilisateurs peuvent ajouter un même film en même temps, plusieurs peuvent contribuer à la création de la fiche de detail mais un seul à l'ouverture de la fiche mais bon, là c'est toi qui voit, c'est ton application :)
enfin, comme l'a dit grafikart est ce que film_id existe bien ? mais ca me parait etrange qu'il n'existe pas... il doit y avoir un probleme ailleurs, regarde la requete généérée peut etre ;)

hyrax
Auteur

Ok je suis un boulet, mysql workbench a par défaut mis les champs au pluriel sur ma table de jointure, c'était finalement ça l'unique soucis !