Как ни странно, я хотел сделать это и искать StackOverflow так же, как вы отправили.
В sfGuardUserForm.class.php
Для «обычных» полей (например, first_name, last_name) используйтеgetValidator:
public function configure()
{
parent::configure();
...
// You may not need to set the field as true, depending on your sfDoctrineGuard schema
$this->getValidator('first_name')->setOption('required', true);
$this->getValidator('first_name')->setMessage('required', 'Please enter your first name');
}
Для полей в PostValidator сообщения можно изменить в коде:
public function configure()
{
parent::configure();
...
// Handle the email address error - more complicated than the rest
$pv = $this->validatorSchema->getPostValidator()->getValidators();
$pv[0]->setMessage('invalid', "Someone has already registered with this email address");
}
Источник основной идеи
В sfGuardFormSignin.class.php
Кажется, здесь нелегко следовать логике ... для этого поста валидатор я использовал следующее:
public function configure()
{
parent::configure();
$this->validatorSchema->getPostValidator()->setMessage('invalid', 'Your email address or password is invalid');
}
Я закончилс этой структурой методом проб и ошибок, но это работает.(Теперь мне нужно переместить ошибку проверки сообщения из поля 'username' в глобальную ошибку)
Другие полезные ресурсы
В этом сообщении показано, как устанавливать сообщения по умолчаниюзаменить довольно бесполезные ошибки формы Symfony по умолчанию.