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 :)
));

Обновление для Symfony 2.1:

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

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

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