有条件的断言



我想知道是否可以在条件下使用Asser注释。

在我的实体类中使用symfony2在我想放置的一个属性上:

 * @AssertNotBlank()

如果另一个属性具有7作为值。

可能吗?

正如我在评论中提到的,您可以使用回调约束

看起来像这样:

class YourEntity
{
    /**
     * @AssertCallback
     */
    public function validate(ExecutionContextInterface $context, $payload)
    {
        if(($this->firstAttr == 7) && empty($this->secondAttr)) {
            $context->buildViolation('Second can't be empty when first is 7!')
                ->atPath('secondAttr')
                ->addViolation();
        }
    }
}

您还可以制作一个外部回调验证器,它可能更合适,因为它不会在您的模型代码(实体)中造成任何混乱。

相关内容

  • 没有找到相关文章