php - 我可以使用 Symfony 的验证约束 NotEqualTo 不区分大小写吗
问题描述
我正在尝试使用 Symfony 的验证约束NotEqualTo
来防止使用某个字符串值。
正如文档所述,这应该可以使用 NotEqualTo 约束。这有效,尽管是以区分大小写的方式。但是,我需要它也以不区分大小写的方式工作。我可以通过创建自定义约束来解决这个问题,但也许我只是忽略了一个更琐碎的解决方案。
class Foo
{
/**
* @Assert\Length(
* min=4,
* max=150
* )
* @Assert\NotEqualTo(
* value="bar"
* )
*/
private $name;
}
在此示例中,保留关键字是bar
。Symfony 不会允许bar
但会允许Bar
, BAR
, BaR
, ...
我可以NotEqualTo
以不区分大小写的方式使用 Symfony 的验证约束吗?
解决方案
NotEqualTo
如前所述,这是不可能的。
解决问题的一种简单方法是使用Regex
字符串约束
/**
* @Assert\Regex(
* pattern="/^(bar)$/i",
* match=false,
* message="'Bar' is a reserved name",
* )
*/
private $name;
也可以创建自己的自定义约束。但我觉得写代码不安全。
推荐阅读
- ruby-on-rails - Rails 生成模型引用但不生成belongs_to
- python-3.x - IndexError:与单个值相比,列表索引超出范围
- mysql - 将段落文档拆分为句子
- postgresql - 使用 pg_dump 只能获取表中的一部分数据(例如 created_on> "2020-01-01")
- angular - 验证并在数据库中添加新项目
- docker - 合并请求后自动运行管道清理
- scala - 通过 spark-shell 以静默模式执行 scala 脚本
- excel - 表(已过滤)为空时的 DataBodyRange 副本
- plugins - 来自相关实体的插件更新字段
- image - 如何使扭曲的纹理看起来更平滑?