J'ai rencontré un peu de problème en enregistrant des données dans le gâteau php.cakephp enregistrement des données pour le modèle associé d'un modèle associé (pas de faute de frappe)
Voici les modèles/relations.
- District hasMany Départements
- Département hasMany Groupes
Je suis dans une vue de la création d'un nouveau quartier, où j'ai permis à l'utilisateur de créer plusieurs nouveaux départements. lors de la création de chaque département, l'utilisateur peut créer plusieurs groupes pour ce département. Maintenant, le problème est que je ne suis pas sûr de la façon de sauvegarder les données du groupe.
pour chaque département créé à la volée, en utilisant la méthode de l'index multiple pour les entrées (par exemple, "Department.0.name", Department.0.type), ce sera donc un jeu d'enfant à sauvegarder en utilisant saveAll méthode. Cependant, pour chaque groupe créé, j'ai besoin d'un department_id, et comme aucun des départements du District n'a encore été sauvegardé, ils n'ont pas d'identifiant. Comment puis-je sauvegarder les données de ce nouveau district, en sauvegardant les nouveaux départements et leurs nouveaux groupes associés? Y a-t-il une manière que je peux adresser l'attribut de nom des entrées de groupe qui créeront l'association appropriée, quelque chose comme "Department.0.Group.0.name", par exemple?
Merci d'avance !!! si quelque chose n'est pas clair, n'hésitez pas à le dire, je me ferai un plaisir de le reformuler.
Merci!En ce qui concerne saveAll, si je comprends bien, cela permettra d'enregistrer les données du modèle et les données de modèle associées. Donc, de ce qui précède, cela permettrait de sauver tout cela. saveAll est un wrapper pour plusieurs méthodes de sauvegarde, dont saveAssociated(). En ce qui concerne la profondeur, pour enregistrer des données pour les modèles associés aux modèles associés, je crois que vous pourriez utiliser saveAssociated ($ data, array ('deep' => true)). Je crée les entrées manuellement pour le groupe dans une vue d'une action de district. Pourrais-je définir l'attribut name à ', je me demande? – Todd
Cela semble juste, 'profond' => vrai hein? Je n'ai jamais utilisé ça, bonne idée. Je crois que votre nom d'entrée est valide et je crois qu'il va créer la bonne structure. ' Php echo $ this-> Form-> input ('Modelname.0.fieldname'); echo $ this-> Form-> input ('Modelname.1.fieldname'); ?> ' –
Limitations de profondeur d'entité 'Dans 1.2, il y avait une limite stricte de 5 clés imbriquées. Cela a posé des limitations importantes sur la création d'entrées de formulaire dans certains contextes. Dans 1.3, vous pouvez maintenant créer des clés d'élément de formulaire imbriquées à l'infini. Des erreurs de validation et des lectures de valeurs pour des profondeurs arbitraires ont également été ajoutées. On dirait que la limite est infinie :) –