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éjà 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éjà 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éjà 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
