Je l'avais vu ce tuto ^^ mais il est assez vieux, 8ans lol
du coup c'est pas trop ce que je souhaite faire ^^
Bonjour,
J'ai créer une class pour facilité la création de mes formulaires.
Tous fonctionne sauf que... quand je mais pas par exemple un label sur le 2eme champs $form->name('test01')->add(); le label du 1er champ se mais automatiquement dans le 2eme champ. ($form est la variable de l'instance de la class Form)
Les actions ressemble à ca :
Je recherche un moyen de faire que chaque ligne est ces propriétés.
le 1er champs
et le 2eme champ :
Merci d'avance pour vos réponse ! =)
11 réponses
Bonsoir,
Puis-je avoir la méthode add ? ou la classe complète si elle n'est pas trop longue ?
Merci
@Carouge10 La class complete ressemble à ça :
Elle n'est pas terminer, il reste des choses a ajouter et à retirer aussi... ^^'
Oui, je vois le gros de la chose.
Théoriquement après chaque appel de la méthode "add()", tu devrais avoir quelque chose qui "vide" les variables de la classe que tu n'as plus besoin (label, name.......), non ?
En gros c'est ca, c'est a dire que si le champs 1 à un label et qu'il est de type select et que le champs 2 n'a pas de label et qu'il utilise le type par défaut (text) bh que je n'ais pas a répéter le type ou ajouter un label vide
Un tuto sur la création des helpers (form) qui pourrais t'aider et te simplifier la tache
+1, ta méthode name devrait créer une nouvelle instance de classe "champ".
Ou, tu devrais pouvoir injecter à une class "form" tes champs par type, du genre $form->add(new TextField())->label('Mon premier champ'));
Personnelement, j'ai opté pour ça :
$fields->text('name_of_field')->label('Mon champ')->otherMethod(...);
Ou "text" correspond à un champ text (et là, j'ai tout une variété de type, que ce soit "date" ou "group" ou "editor" etc.)
La méthode "text" renvoi une instance de la class "new TextField" qui est une abstraction de AbstractField (cette dernière créera les méthodes par défaut commune à tous les types de champ, tel que "label")
Et par exemple, la class DateField pourra définir une méthode avec la date minimum et maximum du champ date.
J'ai refais la class enfin pour faire des testes, mais j'ai le même souci avec un singleton @Balsakup ^^
La class
Appel de la class
Ce que ca retourne
@Kenor je suis d'accord avec ce que tu dis mais je vois pas comment je pourrais le faire, enfin comment je peu dire que quand je fais $form->name('untruc') cela me créer une nouvelle instance ? puis pouvoir appeller chaque methode en fonction de cette methode name ^^
Merci en tous cas pour vos retours !! :D
Suppose que tu as 2 classes :
FormClass et ChampClass
FormClass va contenir une méthode "name" qui va retourner simplement une instance de ChampClass
Tu auras ensuite plus qu'à parcourir ton tableau "instanceChamps" pour appeler une méthode qui buildera ton formulaire en HTML
En mode basique, ChampClass pourrait ressemble à ça
@Kenor ta methone fonctionne, mais je ne vois pas comment ajouter le reste, enfin le label, le type, etc.. à la suite $form->name()->label->type()... enfin selon les besoins ^^'
Merci pour cette réponse !
Non enfaite tous fonctionne et c'est bien ce que je souhaitais ! ^^
Si sa intéresse des personnes, je partagerais cette Class terminer sur GitHub !
Encore merci a toi @Kenor =D