php - 我可以使用 Symfony 的验证约束 NotEqualTo 不区分大小写吗

标签 php symfony validation symfony4

我正在尝试使用 Symfony 的验证约束 NotEqualTo 来防止使用某个字符串值。

作为documentation声明这应该可以使用 NotEqualTo 约束来实现。 这是可行的,尽管是以区分大小写的方式。但是我需要它也以不区分大小写的方式工作。 我可以通过创建自定义约束来解决这个问题,但也许我只是忽略了一个更简单的解决方案。

class Foo
{
    /**
     * @Assert\Length(
     *     min=4,
     *     max=150
     * )
     * @Assert\NotEqualTo(
     *     value="bar"
     * )
     */
    private $name;
}

在此示例中,保留关键字是 bar。 Symfony 不允许 bar,但允许 BarBARBaR、...

我可以以不区分大小写的方式使用 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/

相关文章:

php - 有没有办法让所有模板都继承母模板

database - symfony2 路由,来自数据库的可选前缀

c++ - 正确数据类型的输入验证?

php - 使用 PhpDoc 记录 PHP 多重继承

php - 通过我的 REST API 连接 Google REST API 无效

forms - Symfony2 : 1 form to edit a translatable entity

javascript - 在 Javascript 中验证对象形状的简单方法

validation - vee-validate 以什么顺序与验证器一起工作? (同步和异步)

javascript - 在 Morris Chart 上添加动画效果

php - Zend_Form + DHTML 内容