Symfony 2: добавить пользовательский элемент формы, а не в сущности

Я работаю с Symfony2 и хотел бы создать регистрационную форму. Я не хочу использовать FOSUserBundle.

Итак, я создаю учетную запись Entity (с полями: имя пользователя, пароль, адрес электронной почты ...) и создаю форму:

 $account = new Account();

$form = $this->createFormBuilder($account)
  ->add('username',         'text', array('label' => 'Nom de compte :'))
  ->add('password',    'password', array('label' => 'Mot de passe :'))
  ->add('email',            'email', array('label' => 'Adresse email :'))
  ->getForm();

Теперь я хочу добавить поле подтверждения для пароля. Но когда я пытаюсь добавить поле с помощью метода add (), например & quot; password_confirmation & quot; У меня есть это :

Neither property "password_confirmation" nor method "getPasswordConfirmation()" nor method "isPasswordConfirmation()" exists in class "App\FrontBundle\Entity\Account"

Как я могу добавить пользовательское поле? И после, как проверить это?

Спасибо. BR.

Ответы на вопрос(2)

Решение Вопроса

что * password_confirmation * не является частью объекта, используяproperty_path вариант.

->add('password_confirmation', 'password', array('property_path' => false))

И затем, чтобы подтвердить это сCallBackValidator.

Butв этом конкретном случае, когда вы хотите повторить поле,повторный Виджет может сделать это за вас.

->add('password_confirmation', 'repeated', array(
    // See the docs :)
));
 Thomas K10 июн. 2012 г., 16:24
Большое спасибо ;)
 11 июн. 2012 г., 22:54
Идеальный ответ.
 31 окт. 2013 г., 01:09
Это больше не действует с Symfony 2.1. Вы должны использовать «mapped» = & GT; вместо ложного, например:->add('password_confirmation', 'password', array('mapped' => false));
 10 февр. 2013 г., 09:06
Большое спасибо.

property_path устарела, и вместо этого вы должны использоватьсопоставляются, Синтаксис остается прежним:

->add('password_confirmation', 'password', array('mapped' => false))
 11 янв. 2016 г., 21:25
Это также работает для Symfony 3.0

Ваш ответ на вопрос