fli*_*iim 5 validation symfony
我无法使我的验证约束$form->isValid()起作用。即使我输入的长度小于 10,书名也始终有效...
在我的 AppBundle\Resources\config\validation\book.yml 上
AppBundle\Entity\Book:
properties:
bookName:
- NotBlank: ~
- Length:
min: 10
Run Code Online (Sandbox Code Playgroud)
都不来自 formBuilder
$builder->add('bookName', TextType::class, array(
'constraints' => new Length(array('min' => 10))))
Run Code Online (Sandbox Code Playgroud)
这是我的framework.validation配置
framework:
validation: ~
Run Code Online (Sandbox Code Playgroud)
默认配置是
framework:
validation:
enabled: true
enable_annotations: false
Run Code Online (Sandbox Code Playgroud)
需要帮助请。
谢谢
我解决了我的问题。
这是因为我使用了表单类并且设置了如下所示的validation_groups :
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'validation_groups' => array('creation'),
'data_class' => 'AppBundle\Entity\Book',
));
}
Run Code Online (Sandbox Code Playgroud)
我没有在 formBuilder 选项中指定它。
$form = $this->createForm(BookType::class, $book);
if ($form->isValid()) {
...
}
Run Code Online (Sandbox Code Playgroud)
解决方案 1:从 Form 类默认选项中删除验证组的定义。
解决方案2:是添加验证组进行验证:
$form = $this->createFormBuilder($book, array(
'validation_groups' => array('creation'),
))->add(...);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2356 次 |
最近记录: |