Проверка правильности полей в Symfony 2 - PullRequest
5 голосов
/ 31 января 2012

Я пытаюсь реализовать функцию смены пароля в проекте Symfony 2.У меня есть сущность User с правилами проверки в файле validation.ymlUser сущности у меня есть поле "password" с ограничениями проверки в validation.yml.
Я создал форму с двумя полями 'password' и 'confirmPasswod'.Я хочу использовать ограничения проверки сущности для поля «пароль» и проверить равенство между полями «passwod» и «confirmPassword».В моем контроллере я пишу

$form = $this->createForm(new SymfonyForm\ChangePasswordType(), new Entity\User());
if ($form->isValid())
    {..............}

В сущности «Пользователь» у меня нет поля «verifyPasswod».Поэтому я получаю сообщение об ошибке:

Neither property "confirmPassword" nor method "getConfirmPassword()" nor method "isConfirmPassword()" exists in class

Есть ли способ использовать проверку формы на основе сущностей для одних полей формы, а не проверку на основе сущностей для других?Заранее спасибо.

1 Ответ

16 голосов
/ 31 января 2012

В SymfonyForm\ChangePasswordType вы можете использовать что-то вроде этого:

$builder->add('password', 'repeated', array(
    'type' => 'password',
    'first_name' => 'Password',
    'second_name' => 'Password confirmation',
    'invalid_message' => 'Passwords are not the same',
));

Начиная с Symfony 2.1, вы можете настроить параметры, чтобы избежать неправильного имени элемента (как упомянуто в комментарии)

$builder->add('password', 'repeated', array(
    // … the same as before 
    'first_name' => 'passwd',
    'second_name' => 'passwd_confirm',
    // new since 2.1
    'first_options'  => array('label' => 'Password'),
    'second_options' => array('label' => 'Password confirmation'),    
));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...