【问题标题】:Validation constraints not working on my Symfony3 project验证约束不适用于我的 Symfony3 项目
【发布时间】:2016-03-27 02:33:31
【问题描述】:

我无法使我的验证约束 $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 配置

framework:
    validation: ~

默认配置是

framework:
    validation:
        enabled: true
        enable_annotations: false

需要帮助。

谢谢

【问题讨论】:

  • 您应该提供一个示例来说明您是如何使用该表单的,即在哪里调用了 isValid()。

标签: validation symfony


【解决方案1】:

我解决了我的问题。

这是因为我使用了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(...);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-22
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    相关资源
    最近更新 更多