【发布时间】:2016-06-21 13:21:12
【问题描述】:
我想知道是否可以使用带有条件的asser注解。
在我的实体类中使用 symfony2,在我想放置的一个属性上:
* @Assert\NotBlank()
如果另一个属性的值为 7。
这可能吗?
【问题讨论】:
标签: validation symfony doctrine-orm annotations assertions
我想知道是否可以使用带有条件的asser注解。
在我的实体类中使用 symfony2,在我想放置的一个属性上:
* @Assert\NotBlank()
如果另一个属性的值为 7。
这可能吗?
【问题讨论】:
标签: validation symfony doctrine-orm annotations assertions
正如我在评论中提到的,您可以使用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,这可能更合适,因为它不会在您的模型代码(实体)中造成任何混乱。
【讨论】: