我正在尝试使用 Symfony 的验证约束 NotEqualTo
来防止使用某个字符串值。
作为documentation声明这应该可以使用 NotEqualTo 约束来实现。 这是可行的,尽管是以区分大小写的方式。但是我需要它也以不区分大小写的方式工作。 我可以通过创建自定义约束来解决这个问题,但也许我只是忽略了一个更简单的解决方案。
class Foo
{
/**
* @Assert\Length(
* min=4,
* max=150
* )
* @Assert\NotEqualTo(
* value="bar"
* )
*/
private $name;
}
在此示例中,保留关键字是 bar
。
Symfony 不允许 bar
,但允许 Bar
、BAR
、BaR
、...
我可以以不区分大小写的方式使用 Symfony 的验证约束 NotEqualTo
吗?
最佳答案
正如之前所证实的,这对于 NotEqualTo
来说是不可能的。
解决该问题的一个简单方法是使用 Regex
来自字符串约束
/**
* @Assert\Regex(
* pattern="/^(bar)$/i",
* match=false,
* message="'Bar' is a reserved name",
* )
*/
private $name;
还可以创建您自己的自定义约束。但我觉得不写代码更安全。
关于php - 我可以使用 Symfony 的验证约束 NotEqualTo 不区分大小写吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55658428/