je l'association suivante:CakePHP sauver deux modèles, deuxième basés sur la première
Groupe hasAndBelongsToMany utilisateur, avec les groups_users table de jointure.
Lorsque je crée un nouveau groupe, je veux ajouter à la table de jointure le fondateur du groupe.
Mon $ this-> tableau de données ressemble à:
Array
(
[Group] => Array
(
[name] => seyufgsduifsj
[access] => 2
[founder_id] => 3
[random_key] => I6XC7uMTelpTSdq8DbtLPjqubiF7s6Pn
)
[GroupsUser] => Array
(
[user_id] => 3
[group_role_id] => 1
[random_key] => PZsDZXcoCTHw1IuvqsfURVpPX6AcZ3r2
)
)
J'ai essayé avec save() et saveAll(), mais ne ferait que le groupe dans le tableau des groupes et non l'association de groupe d'utilisateurs. Donc, fondamentalement, j'ai une forme d'ajout où l'utilisateur remplit le nom de groupe et l'accès. Ensuite, si les données sont validées, j'ajoute quelques valeurs de champs supplémentaires au tableau de groupes (comme random_key) et au tableau de tables jointes (comme user_id et group_role_id). Je veux que Cake sauvegarde d'abord le groupe, prenne son identifiant, mette à jour le tableau de la table jointe avec le bon id_groupe, puis enregistre également ce second tableau.
Est-ce possible de façon directe, ou dois-je écrire deux méthodes save() conséquentes, pour la seconde fournissant le dernier identifiant inséré dans le premier?
Merci!
J'ai suivi votre suggestion et probablement il ne sauvera pas en raison d'une erreur de validation dans le modèle de jointure. Ayant ceci à l'esprit, j'ai effacé tous les paramètres de validation du modèle de jointure, et ** encore ** les données ne sont pas sauvegardées. – linkyndy
Pourquoi changer la relation HABTM avec plusieurs hasMany - belongsTo? HABTM n'est-il pas destiné à ces situations? – linkyndy
Citant du livre: "Il est parfois souhaitable de stocker des données supplémentaires avec une association de plusieurs à plusieurs." À ce stade, vous devez utiliser un hasMany Through, et non une relation HABTM. http://book.cakephp.org/view/1039/Associations-Linking-Models-Together#hasMany-through-The-Join-Model-1650 – RabidFire