Pardonner le titre de la question; passé 20 minutes à essayer d'écrire quelque chose de cohérent (douteux si réussi).Cakephp: maintien des relations hasMany/belongsTo dans les actions du contrôleur
Quoi qu'il en soit, en utilisant un blog comme un exemple, nos modèles ressemblent à ceci:
Message hasMany Commentaire Commentaire belongsTo Poster
Disons que je veux ajouter un commentaire: lors de l'enregistrement du commentaire, je besoin d'inclure la clé étrangère au Post parent (Post.id) dans le tableau de données avant d'appeler save.
Parce que je veux garder la relation dans le contexte de l'utilisateur - je ne veux pas avoir à choisir un poste d'un champ de sélection pour associer le commentaire avec - voici deux options que je vois:
1) Placez le formulaire de commentaire dans la vue de la publication.
2) passer l'identifiant de publication comme argument (via GET) à l'action Comment.add (ou écrire/lire de/à partir de la session); enregistrer et rediriger vers le parent Post.view.
L'option 1 est idéale pour un blog, mais pas pour un profil d'utilisateur, qui peut être trop long d'un formulaire à inclure dans la vue utilisateur.
L'option 2 fonctionne je suppose, mais je devrais écrire des conditions post-spécifiques d'affichage/de redirection à l'action Comments.add, et cela ne semble pas correct; d'après ce que j'ai lu, je dois essayer de maintenir une relation 1: 1 entre les contrôleurs et les modèles.
Le numéro 2 est-il acceptable en tant que meilleure pratique Web MVC? ou y a-t-il une autre option que je néglige?