Bonsoir,

Je bloque sur la sauvegarde de relations belongsToMany (many to many) malgré plusieurs recherches dans la DOC, stackoverflow et google.
J'ai les tables Posts, Tags, et Posts_Tags (classique).

Je souhaite lors de la rédaction d'un post pouvoir ajouter des tags dans un champ (chacun séparé par une virgule).
Pour cela j'ai donc créé un input text "tags" (que je récupére sans problème dans mon request->data) dans le form de Posts/add.ctp.
Puis j'ai créé TagBehavior.php qui ne possède pour le moment qu'une méthode chargée de faire un explode/trim/array_unique sur la chaine.

Sauf que lors du patchEntity de mon PostsController je n'arrive pas à récupérer le champ tags. J'ai vraiment du mal à comprendre la logique et organisation du code derière la sauvegarde des associations BTM (notamment avec l'ajout dans les tables de jointures).
Je pense faire toutes les sauvegardes directement dans mon TagBehavior avec un afterSave(), et une méthode tagExist pour retourner l'id du tag s'il est déjà enregistré.

Si quelqu'un peu m'aider à comprendre le fonctionnement des sauvegardes BTM car j'ai vraiment du mal.

Merci infiniment pour votre aide,

PS: dans mon cas, le recours à un behavior est nécessaire car les tags auront des liaisons avec différentes entitées (autre que posts)

Aucune réponse