Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
je débute avec Zend Framework, et chaque fonctionnalité est un petit défi, mais en voilà un que je n'arrive pas à relever: la gestion d'une relation many-to-many (plusieurs-a-plusieurs, ou n-n).
Je souhaite, dans un formulaire de création d'article (disons de blog), permettre l'ajout de mots-clé(tags) associés à l'article. Mon idée est de taper les tags séparés par une virgule dans une textbox, et qu'ils soient associés en base une fois le formulaire validé et soumis.
Voici un extrait de la structure de mes tables:
ARTICLE - id_article(int) ; texte(varchar), [...] //Table Article
TAG - id_tag(int) ; nom(varchar), [...] //Table Mots-clé
ARTICLE_TAG - id_article(int), id_tag(int) . //Table de correspondance
Voici comment je me représente le flow si j'utilisais du procédural:
***Soumission du formulaire***
-Récupération des tags en array
-Insertion des tags qui n'existent pas
-Insertion/Suppression de la liaison article-tag dans la table ARTICLE_TAG
***Affichage de l'article***
-Récupération des tags associé à l'article en cours
-Affichage des tags
C'est la place de ces fonctions dans le framework qui est floue.
1)Ou définir la relation entre les tables?
2)Ou placer la fonction de conversion du texte en array?
3)Ou insérer l'ajout d'une entrée dans ARTICLE_TAG?
Je pourrais passer par des requêtes SQL définies en dur un peu n'importe ou, mais j'aimerais respecter l'architecture de Zend.
Si quelqu'un est arrivé jusqu'à la fin de ma demande, l'a comprise et est en mesure de m'aider, merci d'avance N'hésitez pas à me demander plus de précision sur mon architecture actuelle s'il le faut.
Dernière modification par altermativ (09-09-2009 21:58:09)
Hors ligne
Je me permet de faire un énorme UP, car la solution m’intéresse fortement ... Comment gérer avec Zend_Form et Zend_DB une liste de tag dans un formulaire d'un article ?
Hors ligne
Lâche Zend Db et utilise Doctrine 2, c'est le meilleur conseil que j'ai à te donner.
Plus puissant, mieux documenté, bien plus performant, plus maintenu (le lead developer de Doctrine 2 est l'ancien lead developer de Zend Db)...
Dans tous les cas, si tu décides de rester sur Zend Db, oublie les relations avec, c'est une horreur pour les performances. Fais toi mmême des requpetes JOIN.
Dernière modification par Ender (31-07-2011 19:15:58)
Hors ligne
Pages: 1