Symfony 2: Добавление пользовательского элемента формы, а не в объект
Я работаю с Symfony2 и я хотел бы создать форму регистрации. Я не хочу использовать FOSUserBundle.
Итак, я создаю учетную запись сущности (с полями: имя пользователя, пароль, электронная почта...) и я создаю форму:
$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 (), например " password_confirmation" У меня вот что:
ни свойство "password_confirmation" ни метод "getPasswordConfirmation () "или метод" isPasswordConfirmation () "существует в классе"AppFrontBundleEntityAccount"
Как добавить настраиваемое поле ? А после, как его проверить ?
спасибо. БРОМ.
2 ответов
в нормальной ситуации вам нужно будет явно указать, что * password_confirmation* не является частью сущности, используя property_path.
->add('password_confirmation', 'password', array('property_path' => false))
а затем проверить его с помощью CallBackValidator.
но, в этом конкретном случае, когда вы хотите повторить поле,повторное виджет может сделать это за вас.
->add('password_confirmation', 'repeated', array(
// See the docs :)
));
обновление для Symfony 2.1:
property_path
устарел, и вместо этого вы должны использовать соотнесенные. Синтаксис остается прежним:
->add('password_confirmation', 'password', array('mapped' => false))