1

我的表格类型:

public function buildForm(FormBuilderInterface $builder, array $options)
{

    $builder
        ->add('email', 'email')
        ->add('username')
    ;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'MyApp\UserBundle\Entity\User',
    ));
}

和控制器:

    $form = $this->createForm(new OAuthEmailType());
    if ($request->isMethod('POST'))
    {
        $user = new User();
        $form->setData($user);
        $form->bind($request);

        // die($form->getErrorsAsString());
        if ($form->isValid()) // always returns true
        {
            // ...
        }
        // ...
    }

我的用户实体属性具有注释验证。此类还扩展了 FOSUserBundle 用户实体。

这就是问题所在。$form->isValid()总是返回 true,但相同的表单类型可以完美地与另一个控制器配合使用。为什么表单没有在这个控制器中完全验证?我错过了什么?

4

1 回答 1

2

我的直觉表明您需要将正确的validation_group 添加到您的表单中。

其实只是猜测。见评论。但我也遇到过这种情况。

于 2013-06-05T18:55:24.160 回答