Hello Cristophe!

Thanks for the hint, it was very useful! I managed to pass some of the
object's variables from the Form Class to the Validator Class through its
constructor. It works just fine:

// in the form class
        $this->mergePostValidator(
                new
ClientStatusValidatorSchema($this->getObject()->getUserId(),
                $this->getObject()->getAvailability(),
                $this->getObject()->countBdnClientContacts())
        );

// in the validator class
class ClientStatusValidatorSchema extends sfValidatorSchema {

    public function __construct($_current_user, $_availability,
$_contact_persons)
    {
         $this->current_user = $_current_user;
         $this->contact_persons = $_contact_persons;
         $this->availability = $_availability;
    }

    private $current_user;
    private $availability;
    private $contact_persons;

    protected function doClean($values) {

        $errorSchema = new sfValidatorErrorSchema($this);

        if(($this->current_user !=
sfContext::getInstance()->getUser()->getGuardUser()->getId())&&
                ($this->current_user != 0))
            $errorSchema->addError(new sfValidatorError($this, 'This is not
your client!'), 'user_id');
//...



Regards,

Mihai Rusoaie
+40 72 RUSOAIE
www.rusoaie.com


On Tue, Apr 6, 2010 at 1:11 PM, NOOVEO - Christophe Brun
<c.b...@nooveo.fr>wrote:

> Hi. I'm #far# from mastering Symfony but here are my two cents. I would say
> that validators are not intented to know anything else than the bunch of
> values to clean and validate, hence I don't see any way for them to know the
> form's object. But the form has access to all the values you need : tainted
> values, cleaned values, his object. Hence, I suppose that you should process
> your comparisons somewhere in the form's method, maybe doBind() or
> doUpdateObject().
>
>
> -----Message d'origine-----
> De : symfony-users@googlegroups.com [mailto:symfony-us...@googlegroups.com]
> De la part de Mihai Rusoaie
> Envoyé : jeudi 1 avril 2010 10:44
> À : symfony users
> Objet : [symfony-users] access object from validator
>
> Hello, all!
>
> Is there any way to access my object (the one before the form post) from a
> sfValidatorSchema ?
>
> When I had my validator inside the Form.class.php file, I could access the
> object with $this->getObject(), but from the sfValidatorSchema class I
> cannot access it like this.
>
> I need to compare the submitted values from a form with the previous
> values. Is there any other way to do this than to access the original object
> from the validator?
>
> Thank you!
>
> --
> If you want to report a vulnerability issue on symfony, please send it to
> security at symfony-project.com
>
> You received this message because you are subscribed to the Google Groups
> "symfony users" group.
> To post to this group, send email to symfony-users@googlegroups.com To
> unsubscribe from this group, send email to
> symfony-users+unsubscr...@googlegroups.com<symfony-users%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/group/symfony-users?hl=en
>
> To unsubscribe, reply using "remove me" as the subject.
>
>
> --
> If you want to report a vulnerability issue on symfony, please send it to
> security at symfony-project.com
>
> You received this message because you are subscribed to the Google
> Groups "symfony users" group.
> To post to this group, send email to symfony-users@googlegroups.com
> To unsubscribe from this group, send email to
> symfony-users+unsubscr...@googlegroups.com<symfony-users%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/group/symfony-users?hl=en
>

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en

Reply via email to