Tho*_*s K 31 symfony-forms symfony
我使用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();
Run Code Online (Sandbox Code Playgroud)
现在,我想为密码添加一个确认字段.但是,当我尝试使用add()方法添加字段时,例如"password_confirmation"我有这个:
类"App\FrontBundle\Entity\Account"中不存在属性"password_confirmation"和方法"getPasswordConfirmation()"以及方法"isPasswordConfirmation()"
如何添加自定义字段?之后,如何有效呢?
谢谢.BR.
Squ*_*zic 65
Symfony 2.1的更新:
property_path已弃用,您应该使用映射.语法保持不变:
->add('password_confirmation', 'password', array('mapped' => false))
Run Code Online (Sandbox Code Playgroud)
Sam*_*ane 51
在正常情况下,您需要使用property_path选项明确指定*password_confirmation*不是实体的一部分.
->add('password_confirmation', 'password', array('property_path' => false))
Run Code Online (Sandbox Code Playgroud)
然后使用CallBackValidator验证它.
但是,在这种特殊情况下,您想要重复一个字段,重复的小部件可以为您完成.
->add('password_confirmation', 'repeated', array(
// See the docs :)
));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16571 次 |
| 最近记录: |