Salut,
J'aimerais que symfony fasse des "trim" sur les champs des formulaires mais je n'ai pas envie de devoir spécifier l'option pour chaque champs de chaque formulaire.
Est-il possible de définir ça à un niveau global ?
Merci d'avance
Salut,
J'aimerais que symfony fasse des "trim" sur les champs des formulaires mais je n'ai pas envie de devoir spécifier l'option pour chaque champs de chaque formulaire.
Est-il possible de définir ça à un niveau global ?
Merci d'avance
J'ai essayé d'ajouter ça dans la méthode "configure()" de mon formulaire :
Mais ça ne change rien. Je pense que c'est parce que ça intervient trop tard et que les validateurs des champs ont déjà été initialisés avec la valeur par défaut (cf sfValidatorBase.class.php::__construct) qui est false.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $this->getValidatorSchema()->addOption( "trim", true );
Avec ça ça marche :
Est-ce que c'est propre ? Est-ce qu'il y a une autre façon de faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 foreach( $this->getValidatorSchema()->getFields() as $field ) $field->addOption( "trim", true );
Tu as, dans ta structure un lib/form/BaseForm.class.php. Ce fichier est le parent de toutes les classes de formulaires générées par doctrine (ou propel).
Donc si tu modifies ici ton schema, il le sera pour toutes les classes auto-générées de tous les formulaires, et ce avant la configuration de la classe générée.
Maintenant, je n'ai jamais essayé de modifier le paramètre trim depuis ici.
Tiens-nous au courant !
--------------------------------
j'ai cherché sur les forums en anglais et suis tombé sur ceci.
Donc, il semblerais que ta proposition de modification et mon emplacement ne soient pas les bons.
Reste :
- la boucle (que tu peux inclure dans une méthode dans BaseForm.class.php)
- Créer dans un dossier de ton lib un sfMyValidator avec les options de base que tu souhaites et l'utiliser dans tes formulaires
- recopier le code de sfValidatorBase dans sous dossier de lib et passer le paramètre trim a true (défaut, plus de mise a jour de l'objet si tu change de version de symfony).
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
- Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
- Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
- Une discussion est terminée ? Alors le bouton est votre ami !
merci pour ta réponse.
Si je comprend bien il n'y a pas vraiment de manière propre de faire ça. Celle que j'ai trouvé me semble encore la moins pire.
Elle est bien, mais je créerais une méthode dans BaseForm.class.php que j'activerais dans chaque objet. Histoire de ne pas refaire le même code dans chaque objet.
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
- Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
- Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
- Une discussion est terminée ? Alors le bouton est votre ami !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager