php - 使 Laravel 的 notIn 验证规则不区分大小写
问题描述
我在我的数据库中存储了一个字符串数组(db 列类型是 JSON)。有一个表单允许用户向这个数组添加一个值。我想确保这个数组中没有重复项。notIn验证规则似乎是防止重复的最简单的解决方案,但它区分大小写。因此,当使用 notIn 时,我无法阻止具有不同大小写的相同字符串。
$this->validate(request(), [
'choice' => [
'required',
Rule::notIn($choices)
]
]);
有没有人建议我应该如何修复这个验证,以便字符串比较不区分大小写?
解决方案
您可以像这样小写输入数据以及当前数据:
$input = request()->all();
$input['choice'] = array_map("strtolower", $input['choice']);
$this->validate($input, [
'choice' => [
'required',
Rule::notIn(array_map("strtolower", $choices))
]
]);
推荐阅读
- java - 如何为复合类实现 MongoDB 编解码器?
- spring-boot - 使用 jwt 运行 Spring Boot 应用程序时出现问题
- angular - 将视图从组件传递给其他组件
- java - LocalDate.EPOCH 不可用
- jmeter - 我的 JMeter Beanshell 脚本如何确定它是否以交互方式运行?
- python - 使用 woocommerce api 创建客户时如何添加自定义字段作为元数据
- php - 如何解析 HTML 和检索多行文本
- r - 如何动态选择闪亮的仪表板皮肤?
- r - 无法重现协方差矩阵
- angular - Angular:使用带有多个模板变量的异步管道的 NgIf 的正确语法?