symfony 1.4: попытка заменить сообщение по умолчанию 'Required' - PullRequest
0 голосов
/ 25 августа 2010

Я пытаюсь заменить стандартное сообщение «Требуется» в этом валидаторе:

 $this->setValidator('email', new sfValidatorAnd(array(
   new sfValidatorEmail(array('required' => true, 'trim' => true)),
   new sfValidatorString(array('required' => true, 'max_length' => 80)),
   new sfValidatorDoctrineUnique(array(
     'model' => 'sfGuardUserProfile',
     'column' => 'email'
   ), array(
     'invalid' => 'An account with that email address already
exists. If you have forgotten your password, click "cancel", then "Reset
My Password."'))
 )));

но я не знаю, куда мне добавить что-то вроде этого: 'required' => «Вы должны написать свой e-mail»).

Есть идеи?

Sf 1,4

1010 * Javi *

Ответы [ 2 ]

4 голосов
/ 25 августа 2010

Вы должны определить «обязательное» сообщение для sfValidatorAnd:

$form->setValidator('email', new sfValidatorAnd(array(
   new sfValidatorEmail(array('required' => true, 'trim' => true)),
   new sfValidatorString(array('required' => true, 'max_length' => 80)),
   new sfValidatorDoctrineUnique(array(
     'model' => 'sfGuardUserProfile',
     'column' => 'email'
   ), array(
     'invalid' => 'An account with that email address already exists. If you have forgotten your password, click "cancel", then "Reset My Password."'))
 ), array(), array('required' => 'E-mail is required')));

sfValidator и выполняет очистку и отвечает за установку сообщений об ошибках.

0 голосов
/ 25 августа 2010

Вы должны добавить его в array (), который должен быть вторым параметром конструктора sfValidatorEmail.

 $this->setValidator('email', new sfValidatorAnd(array(
   new sfValidatorEmail(array('required' => true, 'trim' => true)),
   new sfValidatorString(array('required' => true, 'max_length' => 80)),
   new sfValidatorDoctrineUnique(array(
     'model' => 'sfGuardUserProfile',
     'column' => 'email'
   ), array(
     'invalid' => 'An account with that email address already
exists. If you have forgotten your password, click "cancel", then "Reset
My Password."'))
 ),array(), array('required' => 'test custom message')));
...