symfony - Symfony 2:添加自定义表单元素,而不是在实体中

标签 symfony symfony-forms

我与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”
我有这个 :

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



如何添加自定义字段?之后,如何验证呢?

谢谢。
BR。

最佳答案

在正常情况下,您需要使用property_path选项明确指定* password_confirmation *不属于实体。

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

然后使用CallBackValidator对其进行验证。

但是,在这种特定情况下,如果您想重复一个字段,repeated小部件可以为您完成此操作。
->add('password_confirmation', 'repeated', array(
    // See the docs :)
));

关于symfony - Symfony 2:添加自定义表单元素,而不是在实体中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950203/

相关文章:

symfony - Payum bundle : How to change the view of capture action in symfony2

symfony - Silex + Twig : form_widget() not found, 即使安装了 Symfony Bridge

php - Symfony2 表单子(monad)项和错误

symfony - 使用带有整数的 ChoiceType 作为选择值

symfony - 带有 propel 的 symfony2 表单的实体字段类型等效是什么?

php - Symfony2 错误提交实体类型的表单(多对多关系)

php - 使用 Symfony Forms、Twig 和 SymfonyTwigBridge 时如何覆盖默认模板?

css - symfony Twig 背景图像

postgresql - 如何使用 Doctrine 和 Symfony 即时设置 PostgreSQL 模式?

symfony - 如何从 PHP 预填充 EntityType 类型的字段