gpt4 book ai didi

symfony - 如何为 NotEqualTo 约束定义一组值?

转载 作者:行者123 更新时间:2023-12-04 13:56:43 24 4
gpt4 key购买 nike

使用 NotEqualTo validator constraint 时,我想定义多个值。

这是它用于一个值的方式:

# src/SocialBundle/Resources/config/validation.yml
Acme\SocialBundle\Entity\Person:
properties:
age:
- NotEqualTo:
value: 15

但是如何定义一组(一个数组)值呢?我试过
            - NotEqualTo:
value: 15
value: 16
value: 17


            - NotEqualTo:
value: [15, 16, 17]

但两种方法都不起作用。

最佳答案

我相信你可以有多个约束。

Acme\SocialBundle\Entity\Person:
properties:
age:
- NotEqualTo: { value: 15 }
- NotEqualTo: { value: 16 }
- NotEqualTo: { value: 17 }

或者提供一个回调验证器
Acme\SocialBundle\Entity\Person:
properties:
age:
- Callback: [validateNotOfAge]

.
<?php

namespace Acme\SocialBundle\Entity;

use Symfony\Component\Validator\ExecutionContextInterface;

class Person
{
public function validateNotOfAge(ExecutionContextInterface $context)
{
if (in_array($this->age, array(
15, 16, 17
))) {
$context->addViolationAt(
'age',
'This age is not permitted',
array(),
null
);
}
}
}

或者如果你有 Symfony 2.4,你可以使用新的 Expression使用 ExpressionLanguage 组件的验证器。
Acme\SocialBundle\Entity\Person:
properties:
age:
- Expression:
expression: "this.getAge() not in [15, 16, 17]"

关于symfony - 如何为 NotEqualTo 约束定义一组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22321733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com