我无法使我的验证限制 $ form-> isValid()有效。 即使我输入长度小于10的名称,书名仍然有效。
在我的AppBundle \ Resources \ config \ validation \ book.yml
上AppBundle\Entity\Book:
properties:
bookName:
- NotBlank: ~
- Length:
min: 10
既不是来自formBuilder
$builder->add('bookName', TextType::class, array(
'constraints' => new Length(array('min' => 10))))
这是我的framework.validation config
framework:
validation: ~
,默认配置为
framework:
validation:
enabled: true
enable_annotations: false
请帮助。
由于
答案 0 :(得分:2)
我解决了我的问题。
这是因为我使用了Form Class并设置了validation_groups,如下所示:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'validation_groups' => array('creation'),
'data_class' => 'AppBundle\Entity\Book',
));
}
我没有在formBuilder选项中指定它。
$form = $this->createForm(BookType::class, $book);
if ($form->isValid()) {
...
}
解决方案1 :是从Form类的默认选项中删除验证组的定义。
解决方案2 :是为验证添加验证组:
$form = $this->createFormBuilder($book, array(
'validation_groups' => array('creation'),
))->add(...);