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

Répondre à