有条件的断言
Assertions with conditions
我想知道是否可以使用带条件的断言注释。
使用 symfony2,在我的实体 class 上,在一个 属性 我想放:
* @Assert\NotBlank()
如果另一个 属性 的值为 7。
这可能吗?
正如我在评论中提到的,您可以利用 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,这可能更合适,因为它不会在您的模型代码(实体)中造成任何混乱。
我想知道是否可以使用带条件的断言注释。
使用 symfony2,在我的实体 class 上,在一个 属性 我想放:
* @Assert\NotBlank()
如果另一个 属性 的值为 7。
这可能吗?
正如我在评论中提到的,您可以利用 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,这可能更合适,因为它不会在您的模型代码(实体)中造成任何混乱。