Là c'est parce qu'il faut faire plutôt :
new sfValidatorChoice(array('choices' => array_flip(self::$liensocial))
-----Message d'origine-----
De : [email protected] [mailto:[email protected]] De la
part de manuel brossard
Envoyé : jeudi 6 janvier 2011 14:33
À : [email protected]
Objet : Re: [symfony-fr] validator liste déroulante
'socialrelation' => new sfValidatorChoice(array_flip('choices' =>
self::$liensocial)),
Génère
Parse error: syntax error, unexpected T_DOUBLE_ARROW in
/usr/share/php/symfony/data/web/p18i/lib/form/doctrine/ContributorBelongToCu
stomerForm.class.php on line 40
Le 6 janvier 2011 14:22, Lélio ML <[email protected]> a écrit :
Dans ton cas, voilà comment je procède :
- tableau avec les choix (si ça ne provient pas de la base) avec
parfois
une classe qui gère cela.
- widget avec paramètre array('' => '') + tableau des choix
- validator avec un array_flip(tableau des choix) (ou la fonction
qui
inverse les clés et les valeurs si ce n'est pas celle-là)
- option required => true pour le validator si la donnée est
obligatoire
Ainsi, si le champ est obligatoire, il apparaît d'abord vide et
force
l'utilisateur à faire son choix car sinon il a une erreur
(required).
-----Message d'origine-----
De : [email protected]
[mailto:[email protected]] De la
part de Tugdual SAUNIER
Envoyé : mercredi 5 janvier 2011 23:52
À : [email protected]
Objet : Re: [symfony-fr] validator liste déroulante
désolé mauvais copié/coller, je voulais parler du widget ;)
---
Tugdual Saunier
[email protected]
GTalk: [email protected] Skype: tucksaun
----------------------------------
Pensez environnement !
N'imprimez cet mail que si c'est vraiment nécessaire
Le 5 janvier 2011 23:42, manuel brossard <[email protected]> a
écrit :
> Généré par
>
> 500 | Internal Server Error | InvalidArgumentException
>
> sfValidatorChoice does not support the following options:
'add_empty'.
>
> Le 5 janvier 2011 23:41, manuel brossard <[email protected]> a
écrit :
>>
>> Bien tenté, j 'ai une erreur 500 !
>>
>> Le 5 janvier 2011 23:34, Tugdual SAUNIER
<[email protected]>
>> a écrit :
>>>
>>> essaye ça :
>>> 'socialrelation' => new
>>> sfValidatorChoice(array('add_empty'=>'Choisissez' ,'choices' =>
>>> self::$liensocial)), et rajoute 'required'=>true au validateur
en
>>> virant 0 => 'Choisissez' de self::$liensocial
>>>
>>> ---
>>> Tugdual Saunier
>>> [email protected]
>>>
>>> Le 5 janvier 2011 19:47, manuel brossard <[email protected]>
a
>>> écrit
>>> :
>>> >
>>> >
>>> >
>>> > 'socialrelation' => new sfValidatorChoice(array('choices' =>
>>> > self::$liensocial)),
>>> >
>>> >
>>> > ESt impossible à valider..
>>> >
>>> > OU trouver une doc intelligible sur les widgets
>>> >
>>> >
>>> > Valider un choix dans une liste exemple :
>>> >
>>> > J' ai une liste de département dans un formulaire je veux que
l'
>>> > utilisateur sélectionne son département et ne laisse pas la
>>> > première valeur (ain ou vide. ) juste parce qu' il a oublié.
>>> >
>>> > C 'est de l' ultra classique ! mais bon ça doit être trop
simple..
>>> >
>>> > En fait quand c' est déjà codé c 'est bien d' avoir la doc
>>> > exhaustif sinon j' ai juste l' enfer. ET symfony devient une
cacophonie !
>>> >
>>> >
>>> > Le 5 janvier 2011 15:36, manuel brossard
<[email protected]> a
>>> > écrit :
>>> >>
>>> >> Ben non ..
>>> >>
>>> >>
>>> >> et si j' ajoute pas la valeur nulle dans le widget la liste
>>> >> contient les valeurs possibles et donc c 'est encore car en
cas
>>> >> d' oubli c "est le premier choix de la liste qui sera
enregistré.
>>> >>
>>> >>
>>> >>
>>> >> Le 5 janvier 2011 14:49, Lélio ML <[email protected]> a
écrit :
>>> >>>
>>> >>> Le required => true devrait fonctionner.
>>> >>>
>>> >>> Sinon, dans l'option choices du sfValidatorFormChoice, il ne
>>> >>> faut pas que la chaine vide '' soit présente.
>>> >>>
>>> >>> -----Message d'origine-----
>>> >>> De : [email protected]
>>> >>> [mailto:[email protected]]
>>> >>> De la
>>> >>> part de manuel brossard
>>> >>> Envoyé : mercredi 5 janvier 2011 14:41 À :
>>> >>> [email protected] Objet : Re: [symfony-fr]
validator
>>> >>> liste déroulante
>>> >>>
>>> >>> Ben si le premier élément est 'choisissez" le can_be_empty
>>> >>> =>false ne marchera pas, et le champs est forcement requis
>>> >>> puisque c' est une liste déroulante.
>>> >>>
>>> >>> Cela fonctionnera qu' avec premier élément vide.
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> Le 5 janvier 2011 14:33, ASSO Anthony
<[email protected]> a
>>> >>> écrit :
>>> >>>
>>> >>>
>>> >>> Rajoute l'option: can_be_empty =>false ou
required=>true
>>> >>> selon ton utilisation.
>>> >>>
>>> >>>
>>> >>>
>>> >>> 2011/1/5 manuel brossard <[email protected]>:
>>> >>> > Oui j' ai plus d' erreur mais la validation est
>>> >>> toujours bonne même si il
>>> >>> > n' y a pas eu de choix.
>>> >>> >
>>> >>> > L' idée c' est d 'obliger à faire un choix autre
que le
>>> >>> premier de la liste
>>> >>> > (champs vide ou indicatif.. )
>>> >>> >
>>> >>> >
>>> >>> > Le 5 janvier 2011 13:07, mohamed elharouachi
>>> >>> <[email protected]> a écrit
>>> >>> > :
>>> >>> >>
>>> >>> >> 'socialrelation' => new
sfValidatorChoice(array('choices'
>>> >>> =>
>>> >>> >> array_keys(self::$liensocial))),
>>> >>> >>
>>> >>> >> Le 5 janvier 2011 12:06, ASSO Anthony
>>> >>> <[email protected]> a écrit :
>>> >>> >>>
>>> >>> >>> essaye ca:
>>> >>> >>>
>>> >>> >>> new sfValidatorChoice(array(
>>> >>> >>> 'choices' => array_keys(self::$liensocial)
>>> >>> >>> ));
>>> >>> >>>
>>> >>> >>> 2011/1/5 manuel brossard <[email protected]>:
>>> >>> >>> > 'socialrelation' => new
>>> >>> >>> >
>>> >>> sfValidatorString(array(array_keys(self::$liensocial))),
>>> >>> >>> >
>>> >>> >>> >
>>> >>> >>> > génère une erreur 500.
>>> >>> >>> >
>>> >>> >>> >
>>> >>> >>> >
>>> >>> >>> > Le 5 janvier 2011 08:42, ASSO Anthony
>>> >>> <[email protected]> a écrit
>>> >>> >>> > :
>>> >>> >>> >>
>>> >>> >>> >> Bonjour,
>>> >>> >>> >>
>>> >>> >>> >> pour ton premier pb:
>>> >>> >>> >>
>>> >>> >>> >> Dans le validator, il faut mettre
>>> >>> >>> >> array(array_keys(self::$liensocial))) en
premier
>>> >>> argument. il
>>> >>> >>> >> t'obligera donc à avoir une element de ta
liste.
>>> >>> >>> >>
>>> >>> >>> >> Dans le deuxième argument, tu personnalises
ton
>>> >>> messsage ou en faisant
>>> >>> >>> >> un setMessage() après la déclaration du
validator
>>> >>> >>> >>
>>> >>> >>> >> Bonne journée.
>>> >>> >>> >>
>>> >>> >>> >> 2011/1/4 mantex <[email protected]>:
>>> >>> >>> >> > Bonsoir,
>>> >>> >>> >> >
>>> >>> >>> >> >
>>> >>> >>> >> >
>>> >>> >>> >> > J ' essai de gérer utiliser le validator
>>> >>> sfValidatorString pour
>>> >>> >>> >> > obliger le choix parmi une liste
déroulante.
>>> >>> >>> >> >
>>> >>> >>> >> > Voici un extrait de ma classe:
>>> >>> >>> >> >
>>> >>> >>> >> > protected static
>>> >>> >>> >> > $liensocial = array(0 => 'Choisissez', 1 =>
>>> >>> 'Hierarchie', 2 =>
>>> >>> >>> >> > 'Pair',
>>> >>> >>> >> > 3 => 'Collaborateur', 4 =>'Exterieur');
>>> >>> >>> >> >
>>> >>> >>> >> >
>>> >>> >>> >> > $this->widgetSchema['socialrelation'] = new
>>> >>> sfWidgetFormSelect
>>> >>> >>> >> > (array('choices' => self::$liensocial));
>>> >>> >>> >> >
>>> >>> >>> >> > 'socialrelation' => new
>>> >>> sfValidatorString(array('min_length' =>
>>> >>> >>> >> > 1)),
>>> >>> >>> >> >
>>> >>> >>> >> > Mais cela ne fait pas le job , je n' ai d'
>>> >>> ailleurs pas trouvé
>>> >>> >>> >> > comment
>>> >>> >>> >> > personnalisé le message en remplacement
'champ
>>> >>> is too short' dans le
>>> >>> >>> >> > cas ou la condition n' est pas remplie.
>>> >>> >>> >> >
>>> >>> >>> >> >
>>> >>> >>> >> >
>>> >>> >>> >> > --
>>> >>> >>> >> > Vous recevez ce message, car vous êtes
abonné au
>>> >>> groupe Google
>>> >>> >>> >> > Groupes Symfony-fr.
>>> >>> >>> >> > Pour envoyer un message à ce groupe,
adressez un
>>> >>> e-mail
>>> >>> >>> >> > à [email protected].
>>> >>> >>> >> > Pour vous désabonner de ce groupe, envoyez
un
>>> >>> e-mail à l'adresse
>>> >>> >>> >> > [email protected]
<mailto:symfony-fr%[email protected]>
>>> >>> <mailto:symfony-fr%[email protected]
<mailto:symfony-fr%[email protected]> > .
>>> >>> >>> >> > Pour plus d'options, consultez la page de ce
groupe
:
>>> >>> >>> >> >
http://groups.google.com/group/symfony-fr?hl=fr
>>> >>> >>> >> >
>>> >>> >>> >> >
>>> >>> >>> >>
>>> >>> >>> >>
>>> >>> >>> >>
>>> >>> >>> >> --
>>> >>> >>> >> Anthony ASSO
>>> >>> >>> >> 4 Rue de Bayeux - Apt. 529
>>> >>> >>> >> 31300 TOULOUSE
>>> >>> >>> >> ---
>>> >>> >>> >> Tel: 06.25.74.04.29
>>> >>> >>> >> [email protected]
>>> >>> >>> >>
>>> >>> >>> >> --
>>> >>> >>> >> Vous recevez ce message, car vous êtes abonné
au
>>> >>> groupe Google
>>> >>> >>> >> Groupes Symfony-fr.
>>> >>> >>> >> Pour envoyer un message à ce groupe, adressez
un
>>> >>> e-mail
>>> >>> >>> >> à [email protected].
>>> >>> >>> >> Pour vous désabonner de ce groupe, envoyez un
>>> >>> e-mail à l'adresse
>>> >>> >>> >> [email protected]
<mailto:symfony-fr%[email protected]>
>>> >>> <mailto:symfony-fr%[email protected]
<mailto:symfony-fr%[email protected]> > .
>>> >>> >>> >> Pour plus d'options, consultez la page de ce
groupe :
>>> >>> >>> >>
http://groups.google.com/group/symfony-fr?hl=fr
>>> >>> >>> >>
>>> >>> >>> >
>>> >>> >>> >
>>> >>> >>> >
>>> >>> >>> > --
>>> >>> >>> > Cordialement,
>>> >>> >>> >
>>> >>> >>> > Manuel Brossard
>>> >>> >>> > Twitter: twitter.com/infonel
>>> >>> >>> > Skype : mantex2039
>>> >>> >>> >
>>> >>> >>> > Tel: + 33 9 72 17 00 41
>>> >>> >>> >
>>> >>> >>> > --
>>> >>> >>> > Vous recevez ce message, car vous êtes abonné
au
>>> >>> groupe Google
>>> >>> >>> > Groupes Symfony-fr.
>>> >>> >>> > Pour envoyer un message à ce groupe, adressez
un
>>> >>> e-mail
>>> >>> >>> > à [email protected].
>>> >>> >>> > Pour vous désabonner de ce groupe, envoyez un
>>> >>> e-mail à l'adresse
>>> >>> >>> > [email protected]
<mailto:symfony-fr%[email protected]>
>>> >>> <mailto:symfony-fr%[email protected]
<mailto:symfony-fr%[email protected]> > .
>>> >>> >>> > Pour plus d'options, consultez la page de ce
groupe :
>>> >>> >>> > http://groups.google.com/group/symfony-fr?hl=fr
>>> >>> >>> >
>>> >>> >>>
>>> >>> >>>
>>> >>> >>>
>>> >>> >>> --
>>> >>> >>> Anthony ASSO
>>> >>> >>> 4 Rue de Bayeux - Apt. 529
>>> >>> >>> 31300 TOULOUSE
>>> >>> >>> ---
>>> >>> >>> Tel: 06.25.74.04.29
>>> >>> >>> [email protected]
>>> >>> >>>
>>> >>> >>> --
>>> >>> >>> Vous recevez ce message, car vous êtes abonné au
>>> >>> groupe Google
>>> >>> >>> Groupes Symfony-fr.
>>> >>> >>> Pour envoyer un message à ce groupe, adressez un
>>> >>> e-mail
>>> >>> >>> à [email protected].
>>> >>> >>> Pour vous désabonner de ce groupe, envoyez un
e-mail
>>> >>> à l'adresse
>>> >>> >>> [email protected]
<mailto:symfony-fr%[email protected]>
>>> >>> <mailto:symfony-fr%[email protected]
<mailto:symfony-fr%[email protected]> > .
>>> >>> >>> Pour plus d'options, consultez la page de ce
groupe :
>>> >>> >>> http://groups.google.com/group/symfony-fr?hl=fr
>>> >>> >>>
>>> >>> >>
>>> >>> >>
>>> >>> >>
>>> >>> >> --
>>> >>> >>
>>> >>> >> MOHAMED EL HAROUACHI
>>> >>> >> Ingénieur d'études et de développement
>>> >>> >> Smile Maroc
>>> >>> >> Smile – Open Source Solutions
>>> >>> >> www.smile.fr
>>> >>> >>
>>> >>> >> Tél : (+212) 522 27 13 74 / +212 5 22 27 49 89
>>> >>> >> Fax : (+212) 522 27 13 74
>>> >>> >> Mob : (+212) 678403494
>>> >>> >> Mail : [email protected]
>>> >>> >>
>>> >>> >> --
>>> >>> >> Vous recevez ce message, car vous êtes abonné au
>>> >>> groupe Google
>>> >>> >> Groupes Symfony-fr.
>>> >>> >> Pour envoyer un message à ce groupe, adressez un
>>> >>> e-mail
>>> >>> >> à [email protected].
>>> >>> >> Pour vous désabonner de ce groupe, envoyez un
e-mail à
>>> >>> l'adresse
>>> >>> >> [email protected]
<mailto:symfony-fr%[email protected]>
>>> >>> <mailto:symfony-fr%[email protected]
<mailto:symfony-fr%[email protected]> > .
>>> >>> >> Pour plus d'options, consultez la page de ce
groupe :
>>> >>> >> http://groups.google.com/group/symfony-fr?hl=fr
>>> >>> >
>>> >>> >
>>> >>> >
>>> >>> > --
>>> >>> > Cordialement,
>>> >>> >
>>> >>> > Manuel Brossard
>>> >>> > Twitter: twitter.com/infonel
>>> >>> > Skype : mantex2039
>>> >>> >
>>> >>> > Tel: + 33 9 72 17 00 41
>>> >>> >
>>> >>> > --
>>> >>> > Vous recevez ce message, car vous êtes abonné au
groupe
>>> >>> Google
>>> >>> > Groupes Symfony-fr.
>>> >>> > Pour envoyer un message à ce groupe, adressez un
e-mail
>>> >>> > à [email protected].
>>> >>> > Pour vous désabonner de ce groupe, envoyez un
e-mail à
>>> >>> l'adresse
>>> >>> > [email protected]
<mailto:symfony-fr%[email protected]>
>>> >>> <mailto:symfony-fr%[email protected]
<mailto:symfony-fr%[email protected]> > .
>>> >>> > Pour plus d'options, consultez la page de ce groupe
:
>>> >>> > http://groups.google.com/group/symfony-fr?hl=fr
>>> >>> >
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Anthony ASSO
>>> >>> 4 Rue de Bayeux - Apt. 529
>>> >>> 31300 TOULOUSE
>>> >>> ---
>>> >>> Tel: 06.25.74.04.29
>>> >>> [email protected]
>>> >>>
>>> >>> --
>>> >>> Vous recevez ce message, car vous êtes abonné au
groupe
>>> >>> Google Groupes Symfony-fr.
>>> >>> Pour envoyer un message à ce groupe, adressez un
e-mail à
>>> >>> [email protected].
>>> >>> Pour vous désabonner de ce groupe, envoyez un e-mail
à
>>> >>> l'adresse
>>> >>> [email protected]
<mailto:symfony-fr%[email protected]>
>>> >>> <mailto:symfony-fr%[email protected]
<mailto:symfony-fr%[email protected]> > .
>>> >>> Pour plus d'options, consultez la page de ce groupe :
>>> >>> http://groups.google.com/group/symfony-fr?hl=fr
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Cordialement,
>>> >>>
>>> >>> Manuel Brossard
>>> >>> Twitter: twitter.com/infonel
>>> >>> Skype : mantex2039
>>> >>>
>>> >>> Tel: + 33 9 72 17 00 41
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Vous recevez ce message, car vous êtes abonné au groupe
Google
>>> >>> Groupes Symfony-fr.
>>> >>> Pour envoyer un message à ce groupe, adressez un e-mail à
>>> >>> [email protected].
>>> >>> Pour vous désabonner de ce groupe, envoyez un e-mail à
l'adresse
>>> >>> [email protected]
<mailto:symfony-fr%[email protected]> .
>>> >>> Pour plus d'options, consultez la page de ce groupe :
>>> >>> http://groups.google.com/group/symfony-fr?hl=fr
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Vous recevez ce message, car vous êtes abonné au groupe
Google
>>> >>> Groupes Symfony-fr.
>>> >>> Pour envoyer un message à ce groupe, adressez un e-mail à
>>> >>> [email protected].
>>> >>> Pour vous désabonner de ce groupe, envoyez un e-mail à
l'adresse
>>> >>> [email protected]
<mailto:symfony-fr%[email protected]> .
>>> >>> Pour plus d'options, consultez la page de ce groupe :
>>> >>> http://groups.google.com/group/symfony-fr?hl=fr
>>> >>>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Cordialement,
>>> >>
>>> >> Manuel Brossard
>>> >> Twitter: twitter.com/infonel
>>> >> Skype : mantex2039
>>> >>
>>> >> Tel: + 33 9 72 17 00 41
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Cordialement,
>>> >
>>> > Manuel Brossard
>>> > Twitter: twitter.com/infonel
>>> > Skype : mantex2039
>>> >
>>> > Tel: + 33 9 72 17 00 41
>>> >
>>> > --
>>> > Vous recevez ce message, car vous êtes abonné au groupe Google
>>> > Groupes Symfony-fr.
>>> > Pour envoyer un message à ce groupe, adressez un e-mail à
>>> > [email protected].
>>> > Pour vous désabonner de ce groupe, envoyez un e-mail à
l'adresse
>>> > [email protected]
<mailto:symfony-fr%[email protected]> .
>>> > Pour plus d'options, consultez la page de ce groupe :
>>> > http://groups.google.com/group/symfony-fr?hl=fr
>>>
>>> --
>>> Vous recevez ce message, car vous êtes abonné au groupe Google
>>> Groupes Symfony-fr.
>>> Pour envoyer un message à ce groupe, adressez un e-mail à
>>> [email protected].
>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
>>> [email protected]
<mailto:symfony-fr%[email protected]> .
>>> Pour plus d'options, consultez la page de ce groupe :
>>> http://groups.google.com/group/symfony-fr?hl=fr
>>>
>>
>>
>>
>> --
>> Cordialement,
>>
>> Manuel Brossard
>> Twitter: twitter.com/infonel
>> Skype : mantex2039
>>
>> Tel: + 33 9 72 17 00 41
>>
>
>
>
> --
> Cordialement,
>
> Manuel Brossard
> Twitter: twitter.com/infonel
> Skype : mantex2039
>
> Tel: + 33 9 72 17 00 41
>
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google
Groupes
> Symfony-fr.
> Pour envoyer un message à ce groupe, adressez un e-mail à
> [email protected].
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
> [email protected]
<mailto:symfony-fr%[email protected]> .
> Pour plus d'options, consultez la page de ce groupe :
> http://groups.google.com/group/symfony-fr?hl=fr
>
--
Vous recevez ce message, car vous êtes abonné au groupe Google
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail
à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected]
<mailto:symfony-fr%[email protected]> .
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr
--
Vous recevez ce message, car vous êtes abonné au groupe Google
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail à
[email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected]
<mailto:symfony-fr%[email protected]> .
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr
--
Cordialement,
Manuel Brossard
Twitter: twitter.com/infonel
Skype : mantex2039
Tel: + 33 9 72 17 00 41
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail à
[email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected].
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr
--
Vous recevez ce message, car vous êtes abonné au groupe Google
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail
à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected].
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr