据我所知,我可以使用表单类型创建表单:$form = $this->createForm(new RegistrationType(), $user);
这是表单类型:
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name', 'text');
$builder->add('email', 'email');
$builder->add('terms', 'checkbox', array(
'mapped' => false
));
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'App\UsersBundle\Entity\User'
));
}
public function getName()
{
return 'user_registration';
}
}
所以我可以添加字段term
,而不是将其映射到实体。但验证这个领域的方法是什么?当然我可以在我的控制器中执行类似if ($form->get('terms')->getData())
的操作,但我想使用一个函数$form->isValid()
来验证所有字段(映射和不映射)?可能存在任何验证挂钩或事件吗?