2

据我所知,我可以使用表单类型创建表单:$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()来验证所有字段(已映射和未映射)?可能存在任何验证钩子或事件吗?

4

1 回答 1

4

它在表单章节添加验证部分中有介绍。

于 2013-09-04T09:42:33.123 回答