[Form] Remplir un formulaire par Doctrine et non par une classe
Bonjour,
J'essaye d'attribuer des valeurs à mon formulaire dynamique sans classe. J'ai essayé avec 'data', ça ne fonctionne pas.
Je vous mets ci-dessous le code en question :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
$list_param = $this->getDoctrine()->getEntityManager()->getRepository('CyrApplicationBundle:Parametre')->findByApplication($request->get('id'));
$qb = $this->createFormBuilder();
foreach($list_param as $lp)
{
$qb->add($lp->getNom(),$lp->getType(),array('mapped'=>false,'data'=>'test'));
}
$form = $qb->getForm(); |
Bien évidemment, pour comprendre le fonctionnement j'attribue une valeur en dur dans tous mes champs pour test. Une fois compris, j'attribuerais mes valeurs récupéré par une requête doctrine.
Avez-vous une idée ? Merci d'avance.
[Symfony2] Formulaire dynamique via Doctrine + validation sans classe
Bonjour à tous,
Le sujet : Je souhaite créer un formulaire avec tout ce qu'il y a de plus classique en terme de champs (text, textarea, checkbox, date, select…) et qui peut être administré par une interface utilisateur. C'est à dire qu’un administrateur peut rajouter un champ au formulaire, de le modifier, ou d'en supprimer pour une ou plusieurs applications.
Par exemple :
1. Application : Google
a. Champ 1 : login de type text et en contrainte : minimum 5 caractères.
b. Champ 2 : password de type password et en contrainte : minimum 10 caractères.
c. Champ 3 : siteweb de type url.
2. Application : Bing
a. Champ 1 : login de type text et en contrainte : minimum 10 caractères.
b. Champ 2 : password de type password et en contrainte : minimum 15 caractères.
c. …
3.…
Stockage de la configuration du formulaire : Il suffit de créer une table application qui contiendra les champs suivants :
Et une table paramètre contenant les champs du formulaire pour chaque application qui aurait une forme de ce genre :
- id
- application_id
- nom
- libelle
- type (text, checkbox, date,...)
- options (validation à définir selon les besoins)
- ...
Jusque-là, la création d’une application et de ses paramètres via formulaire imbriqué en suivant le tuto de winzou, est fonctionnelle.
Puis vient ensuite l’affichage du formulaire en récupérant via Doctrine tous les champs d’une application et créer le buildForm. Là aussi ça fonctionne bien.
Mais maintenant vient ensuite le stockage des données saisies dans le formulaire en base pour un utilisateur.
Stockage des données entrées dans le formulaire : C'est ici que je m'y perds complètement... Comment stocker les données lorsqu'un utilisateur complète le formulaire? Et par quel moyen pour valider les données étant donné qu’il n’y a pas de classe Object associée à ce formulaire ? J’ai déjà regardé du côté de la doc SF2 avec les formulaires sans classe. Mais sans succès…
J’ai pensé à créer une table parametre_user de type ManyToMany avec comme attributs :
Bien évidemment, cette table sera une classe avec 2 relations ManyToOne et avec des attributs supplémentaires.
Je ne sais pas si c’est la meilleure solution pour stocker ces valeurs. Donc si vous pouvez me conseiller ou si vous avez des solutions plus simples, ça m’intéresse !
En attente de votre retour. Merci.