我想知道是否可以在条件下使用asser注释。
在我的实体类中使用symfony2,我希望在一个属性上添加:
* @Assert\NotBlank()
如果另一个属性的值为7。
这可能吗?
答案 0 :(得分:1)
正如我在评论中提到的,您可以使用Callback Constraint
看起来像这样:
class YourEntity
{
/**
* @Assert\Callback
*/
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();
}
}
}
你也可以制作一个更合适的external callback validator,因为它不会对你的模型代码(实体)造成任何混乱。