$form->setPostValidator, plutôt, non ?

Le 1 avril 2011 17:32, manuel brossard <[email protected]> a écrit :

> Cela me retourne : *Fatal error*: Call to undefined function
> setPostValidator()
>
> Le 1 avril 2011 09:24, alex baron <[email protected]> a écrit :
>
>
>> tu peux essayer comme cela :
>>
>>
>> 'email_address' => setPostValidator (new sfValidatorDoctrineUnique(
>>
>>> array('model' => 'Customer', 'column' => array('id','email_address'))
>>>
>> , array( 'invalid' => 'Cette adresse e-mail est d&eacute;j&agrave; dans la
>>> base client'))),
>>
>>
>>
>> Alexandre Baron
>>
>>
>>
>>
>> Le 1 avril 2011 09:14, manuel brossard <[email protected]> a écrit :
>>
>> Oui c 'est tout le problème, je ne peux pas utiliser le
>>> sfValidatorDoctrineUnique car en cas d' édition du record impossible de
>>> valider le formulaire.
>>>
>>>
>>> Le 1 avril 2011 08:10, alex baron <[email protected]> a écrit :
>>>
>>>> Perso j'ai procédé que suit:
>>>>
>>>>
>>>> 1-> je crée un postvalidator
>>>> $this->mergePostValidator( new sfValidatorCallback(array('callback' =>
>>>> array($this, 'checkUniqueBillingId'))) );
>>>>
>>>> 2-> dans le même formulaire on trouve la fonction checkUnique...
>>>> public function checkUniqueBillingId($validator, $values)
>>>>   {
>>>>     $noBilling = isset($values['no_billing']) ? $values['no_billing'] :
>>>> NULL;
>>>>
>>>>     if(!agrPubBillingTable::getInstance()->isUnique($noBilling,
>>>> $this->getObject()->getPublisherId(), $this->getObject()->getId()))
>>>>     {
>>>>       throw new sfValidatorErrorSchema($validator, array(
>>>>           'no_billing' => new sfValidatorError($validator, 'There is
>>>> already a bill with this id')
>>>>       ));
>>>>     }
>>>>     return $values;
>>>>   }
>>>>
>>>> 3-> isUnique renvoie faux si un enregistrement avec un autre id et le
>>>> même noBilling existe.
>>>>
>>>> dans ton cas je dirai, mais je peux me tromper, que si tu fait un update
>>>> alors ton validateur te renverra une erreur. Il truver
>>>> Alexandre Baron
>>>>
>>>>
>>>>
>>>>
>>>> Le 31 mars 2011 23:53, manuel brossard <[email protected]> a écrit
>>>> :
>>>>
>>>>
>>>>> OK cela donne donc pour moi. ?
>>>>>>
>>>>>>
>>>>>> $this->setValidators(array(
>>>>>>       'first_name' => new sfValidatorString(array('required' =>
>>>>>> true)),
>>>>>>       'last_name' => new sfValidatorString(array('required' => true)),
>>>>>>        'username' => new sfValidatorString(array('required' => true)),
>>>>>>
>>>>>>        'email_address' =>  new sfValidatorEmail(array('required' =>
>>>>>> true)),
>>>>>>        'email_address' => setPostValidator (new
>>>>>> sfValidatorDoctrineUnique(array('model' => 'Customer', 'column' =>
>>>>>> 'email_address'), array( 'invalid' => 'Cette adresse e-mail est
>>>>>> d&eacute;j&agrave; dans la base client'))),
>>>>>>
>>>>>>
>>>>>> Le 31 mars 2011 17:13, Nicolas <[email protected]> a écrit :
>>>>>>
>>>>>> Bonjour,
>>>>>>>
>>>>>>> si mes souvenirs sont bons, il faut utiliser un postValidator pour ce
>>>>>>> cas là :
>>>>>>>
>>>>>>> $this->validatorSchema->setPostValidator(new
>>>>>>> sfValidatorDoctrineUnique(array('model'
>>>>>>>
>>>>>>> => 'Customer', 'column' => 'email_address'), array( 'invalid' =>
>>>>>>> 'Cette adresse e-mail est d&eacute;j&agrave; dans la base client')));
>>>>>>>
>>>>>>>
>>>>>>> a+
>>>>>>> Nicolsa
>>>>>>>
>>>>>>> Le 31 mars 2011 17:09, manuel brossard <[email protected]> a
>>>>>>> écrit :
>>>>>>>
>>>>>>>> Rassurant !.. lol
>>>>>>>>
>>>>>>>> Désolé mais je ne comprends pourquoi il faut vérifier un autre
>>>>>>>> champs.. .  Dans le cas d' un update, l' id n' est pas modifié.
>>>>>>>>
>>>>>>>> Le 31 mars 2011 17:02, alex baron <[email protected]> a écrit :
>>>>>>>>
>>>>>>>> Si tu regarde dans le code du widget il est possible de spécifier
>>>>>>>>> plusieurs champs pour la recherche de doublon. Mais de mon côté je 
>>>>>>>>> n'ai pas
>>>>>>>>> réussi à le faire fonctionner. Je n'ai pas la toute dernière version 
>>>>>>>>> de
>>>>>>>>> sf14.
>>>>>>>>>
>>>>>>>>> Alexandre Baron
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Le 31 mars 2011 16:59, manuel brossard <[email protected]> a
>>>>>>>>> écrit :
>>>>>>>>>
>>>>>>>>> C 'est quand même hallucinant cette histoire.. A quoi sert ce type
>>>>>>>>>> de widget si est utilisable à moitié. C 'est pas comme si c' était 
>>>>>>>>>> ultra
>>>>>>>>>> courant ce genre de cas.
>>>>>>>>>>
>>>>>>>>>> Le 31 mars 2011 16:51, alex baron <[email protected]> a écrit
>>>>>>>>>> :
>>>>>>>>>>
>>>>>>>>>>> Bonjour,
>>>>>>>>>>> j'ai eu le même problème et je me suis décidé à faire mon propre
>>>>>>>>>>> validator. Ce qui ce passe c'est qu'il faut  vérifier deux champs 
>>>>>>>>>>> pour la
>>>>>>>>>>> contrainte d'intégrité => l'id  et l'email sinon il trouvera 
>>>>>>>>>>> toujours un
>>>>>>>>>>> doublon.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Le 31 mars 2011 15:10, manuel brossard <[email protected]> a
>>>>>>>>>>> écrit :
>>>>>>>>>>>
>>>>>>>>>>>>  Bonjour,
>>>>>>>>>>>>
>>>>>>>>>>>> Personne n' a rencontré ce problème ?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Le 29 mars 2011 09:29, mantex <[email protected]> a écrit :
>>>>>>>>>>>>
>>>>>>>>>>>>> Bonjour à tous,
>>>>>>>>>>>>>
>>>>>>>>>>>>> J'ai un ptit soucil avec un formulaire qui se valide pas
>>>>>>>>>>>>> lorsque je
>>>>>>>>>>>>> met un jour un enregistrement :
>>>>>>>>>>>>>
>>>>>>>>>>>>> Ci dessous un extrait des validateurs :
>>>>>>>>>>>>>
>>>>>>>>>>>>> 'email_address' => new sfValidatorEmail(array('required' =>
>>>>>>>>>>>>> true)),
>>>>>>>>>>>>>       'email_address' => new
>>>>>>>>>>>>> sfValidatorDoctrineUnique(array('model'
>>>>>>>>>>>>> => 'Customer', 'column' => 'email_address'), array( 'invalid'
>>>>>>>>>>>>> =>
>>>>>>>>>>>>> 'Cette adresse e-mail est d&eacute;j&agrave; dans la base
>>>>>>>>>>>>> client')),
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> A la création de l' enregistrement ça fait le job pas de pb ,
>>>>>>>>>>>>> par
>>>>>>>>>>>>> contre à l' update de l' enregistrement le message' 'invalid'
>>>>>>>>>>>>> s'
>>>>>>>>>>>>> affiche.
>>>>>>>>>>>>>
>>>>>>>>>>>>> En clair comment vérifierl'  unicité d' un champs d' un
>>>>>>>>>>>>> enregistrement
>>>>>>>>>>>>> en ayant la possibilité de mettre à jour un autre champs de
>>>>>>>>>>>>> cette
>>>>>>>>>>>>> enregistrement.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Ps: j' utilise également un validator pour tester que la chaine
>>>>>>>>>>>>> saisie
>>>>>>>>>>>>> est bien au format mail.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Bonne journée
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> 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
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> 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
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> 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
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> 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
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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].
>>>>> 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
>>>>
>>>
>>>
>>>
>>> --
>>> 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
>>
>
>
>
> --
> 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
>



-- 
Jérémy LEHERPEUR
[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].
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à