【问题标题】:Validation constraint for two validation groups两个验证组的验证约束
【发布时间】:2015-11-27 16:56:35
【问题描述】:

我正在使用 Symfony 2.7。

我正在尝试根据两个条件在我的实体类中创建一个必需的 (NotBlank) 字段。每个条件都有自己的验证组,我在 FormType 类中设置了正确的验证组。

我试过这个:@Assert\NotBlank(groups={"validationIfCondition1", "validationIfCondition2"})

这不起作用,因为如果使用了至少一个验证组,它会将字段标记为必填。我想仅在使用两个验证组时将其标记为必需。

这是可行的吗?

【问题讨论】:

    标签: validation symfony


    【解决方案1】:

    据我所知,这是不可能的。如果其组与表单验证组相交,则使用约束。 制作组validationIfCondition3,将此组添加到所有具有组validationIfCondition1或validationIfCondition2的字段中,并在表单中使用此组('​​validation_groups' => 'validationIfCondition3')

    【讨论】:

    • 您还可以添加约束 Callback @Assert\Callback(callback=function1, groups={"validationIfCondition1", "validationIfCondition2"}) 并在函数 function1 检查组和值函数 function1($object, ExecutionContextInterface $context) { $groups = $context->getRoot()->getConfig()->getOption('validation_groups'); var_dump($object); var_dump($groups); }
    【解决方案2】:

    如果条件取决于实体属性,则可以使用 group_sequence_provider ...您可以使用自己的逻辑定义将使用哪个组

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 2015-02-03
      • 2012-09-13
      • 2015-03-20
      • 1970-01-01
      相关资源
      最近更新 更多