Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
aujourd'hui, j'ai une question un peu simple mais je n'arrive pas à trouver d'exemples ou de solutions...
Globalement, j'ai un form générique qui me sert de filtre de recherche au niveau de certaines vues (principalement des listing). Au niveau de certaines actions, je supprime ou rajoute des input pour faire correspondre ce "filtre" à la vue et aux colonnes présentes.
Ce que je souhaite faire, c'est réorganiser l'ordre de ces filtres "à la volée". Je sais qu'il est possible d'ajouter une priorité aux input au niveau du constructeur de ceux-ci mais c'est pas vraiment l'idéal lorsque j'ajoute un nouvel input ou que je doive réorganiser les inputs déjà présents dans ce formulaire (exemple mettre l'input B avant le A).
Sous ZF1, il y avait une méthode "setOrder" qui faisait ce travail là mais je n'ai pas trouvé d'équivalent sous ZF2 et j'ai comme un doute sur le fait que cela existe...
Avez vous une solution à me proposer ?
Merci d'avance,
Romain
Hors ligne
Hello,
Honnêtement j'ai pas la réponse ^^
Du coup je viens voir si tu l'a trouvé
Les view helper devrait suffire à réorganiser tes forms mais bon.. c'est pas à la volée hein... ^^
Hors ligne
Hello,
je n'ai toujours pas trouvé la réponse, mais je cherche toujours une solution...
J'avais effectivement pensé au viewHelpers. Si je ne trouve pas de solution, je me tournerais vers ça mais cest pas l'idéal dans mon cas...
Hors ligne
Le but des viewHelper sur les formulaires est de pouvoir les organiser différement ^^
Après, a tu vraiment un intérêt de ne pas distinguer tes formulaires?
Même si ce sont des formulaires de filtre, n'aurait-tu pas intérêt de faire un "ComonFilterForm" qui générerait tes champs commun puis plusieurs autres forms qui eux seraient tes fonctionnalités distinctes et auraient en parent ton comon?
Dernière modification par flobrflo (21-01-2016 10:18:14)
Hors ligne
L'intérêt d'avoir un seul formulaire dans mon cas, c'est qu'il contient des champs qui se retrouvent sur la plupart des vues où il est utilisé. Par contre dans certaines d'entre-elles, je rajoute ou supprime certains input spécifiques à ces vues.
Si je commence à multiplier les formulaires, ça va vraiment être la galère...
Hors ligne
Okay
Comment est ce que tu supprime et ajoute tes inputs dans tes vues?
Hors ligne
Je les ajoute/supprime au niveau de mon controller.
Concrètement, au niveau de mon action, j'appelle une fonction générique qui charge mon formulaire de filtres et qui le stocke dans une variable.
Ensuite, j'ajoute ou je supprime des inputs en utilisant les méthodes propres à la classe Form, c'est à dire add() ou remove().
Je sais que la méthode add() peux prendre un "flag" en deuxième paramètre qui permet d'indiquer la priorité de cet input (et que j'utilise dans certains cas).
Ce que j'aimerais pouvoir faire, c'est pouvoir modifier cette priorité au niveau des inputs du formulaire Filters que je charge précédemment !
Au niveau de mes vues, je fait juste quelque chose du style :
[lang=php] $form = $this->form; $form->setAttribute('action', $action)->setAttributes(array('style' => 'display:inline', 'id' => 'additionalParams')); $form->prepare(); echo $this->form)->openTag($form); echo $this->form($form); echo $this->form()->closeTag();
Dernière modification par RomainG (21-01-2016 13:29:55)
Hors ligne
Bonjour à tous,
j'ai finalement résolu ce problème en fouillant une fois de plus dans le code source.
En fait, il existe une méthode 'setPriority()' de la classe 'Zend\Form\Fieldset'.
Il suffit juste de faire ceci :
[lang=php] $form->setPriority('nom du champ ou du fieldset', (int)ordre);
Hors ligne
Bonjour,
Merci pour ton retour, c'est en effet très utile.
Hors ligne
Pages: 1