我的表格类型:
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,但相同的表单类型与另一个控制器完美配合。为什么表单未在此控制器中完全验证?我错过了什么?
答案 0 :(得分:2)
我很棒的直觉表明你需要在表单中添加正确的validation_group。
其实只是一个猜测。查看评论。但我也遇到过这种情况。