Symfony Multiple Post Validators - PullRequest
       13

Symfony Multiple Post Validators

3 голосов
/ 04 марта 2012

Я использую Symfony 1.4 и у меня проблема с использованием нескольких валидаторов форм.

Для части формы мне нужно убедиться, что адрес электронной почты действителен и уникален.Вот код, который я пытаюсь использовать:

$this->validatorSchema['email_address'] = new sfValidatorAnd(
    array(
        new sfValidatorEmail(),
        new sfValidatorPropelUnique(array('model' => 'Users', 'column' => 'email_address')
    ),

));

Насколько я могу судить, это ДОЛЖНО работать.Однако, когда я отправляю форму, я получаю следующее сообщение об ошибке

Вы должны передать параметр массива методу clean () (этот валидатор может использоваться только как пост валидатор).

Есть идеи или предложения?

1 Ответ

5 голосов
/ 04 марта 2012

Вы можете использовать уникальный валидатор только как post validator, как сказано. Это означает, что вы можете применить его непосредственно к полю - вам нужно применить его к схеме через mergePostValidator. Функционально это даст тот же результат, который вы ищете - например. даже если письмо является действительным, если оно уже существует, вы получите ошибку проверки, но если оба пройдут, форма будет действительной.

$this->validatorSchema['email_address'] = new sfValidatorEmail();
$this->mergePostValidator(new sfValidatorPropelUnique(array('model' => 'Users', 'column' => 'email_address'));
...