我想知道是否可以在条件下使用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();
}
}
}
您还可以制作一个外部回调验证器,它可能更合适,因为它不会在您的模型代码(实体)中造成任何混乱。