laravel - 如何在 laravel 中应用规则来检查文件名是否唯一?
问题描述
在 laravel 8 中,如何使用验证来检查数组中提供的文件名是否唯一。
` "main": [
{
"content": "ABC",
"filename": "recording_1",
"code": "264",
"parameters": ""
},
{
"content": "XYZ",
"filename": "recording_2",
"code": "264",
"parameters": ""
}
...more to come
]`
以上是请求结构。从那个请求中,我必须检查所有文件名应该是唯一的我怎样才能做到这一点?
解决方案
您可以使用 distinct
$validator = Validator::make(
[
'main' =>
[
[
"content" => "ABC",
"filename" => "recording_1",
"code" => "264",
"parameters" => ""
],
[
"content" => "XYZ",
"filename" => "recording_1",
"code" => "264",
"parameters" => ""
]
]
],
['main.*.filename' => 'distinct']
);
然后你可以检查
if($validator->fails()){
echo "<pre>";
print_r($validator->errors());
exit();
}
输出将是
Illuminate\Support\MessageBag Object
(
[messages:protected] => Array
(
[main.0.filename] => Array
(
[0] => The main.0.filename field has a duplicate value.
)
[main.1.filename] => Array
(
[0] => The main.1.filename field has a duplicate value.
)
)
[format:protected] => :message
)
推荐阅读
- javascript - Discord.js:我应该使用什么方法来禁止所有用户名包含“x”的人?
- canvas - Fabricjs 画布对象在 Safari 浏览器中返回空白图像
- python - 如何在 Numpy 中获取大于阈值的最大 N 值的索引?
- python - 用于提取字典特定部分的 for 循环方法
- audio - Gstreamer 合并实时音频(麦克风输入)和视频(网络摄像头输入)管道以通过 UDP 发送
- django-models - 方法 __str__ 输出所有作为回报的字段
- ios - 在 MacBook Air M1 上构建 iOS Flutter App 时出错
- c# - ids4如何根据用户id从数据库中获取用户生成access_token
- spring-boot - 如何使用从一对一或一对多关系获得的行执行 JPQL?
- python - suds-py3 中的日期时间格式