我的表格类型:
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,但相同的表单类型可以完美地与另一个控制器配合使用。为什么表单没有在这个控制器中完全验证?我错过了什么?