arrays - 在 Laravel 中验证数组时如何使用数组项规则添加验证自定义消息?
问题描述
我有自定义验证代码:
$this->validate($request, [
'array' => 'required|array|max:100',
'array.*' => 'required|string|distinct|min:3'
], [
'array.max' => 'Array can't have more :max items',
]);
在这里,我如何使用数组项规则添加自定义消息?
例如:'array.item.min' => 'Array items length can't be greater :min charackters'
数组项的示例 laravel 默认验证错误消息:
{
message: "The given data was invalid."
}
errors: {
array.3: ["The array.3 must be at least 3 characters."]
}
array.3: ["The array.3 must be at least 3 characters."]
0: "The array.3 must be at least 3 characters."
message: "The given data was invalid."
如何用我的数组项的单个消息替换此验证消息?
解决方案
提交表单时,您可以尝试在每个元素上添加自定义消息。这是示例代码
$customMessages['array.max'] = 'Array can't have more :max items';
foreach ($request->get('array') as $key => $value) {
$customMessages['array.' . $key . '.min'] = 'Array items length can't be greater :min charackters';
}
$this->validate($request, [
'array' => 'required|array|max:100',
'array.*' => 'required|string|distinct|min:3'
], $customMessages);
如果要在视图中显示错误,可以这样做:
@if ($errors->has('array.0'))
{{ $errors->first('array.0') }}
@endif
如果您在视图中有 foreach
@if ($errors->has('array.'.$index))
{{ $errors->first('array.'.$index) }}
@endif
推荐阅读
- java - 使用 Glide Library 时,小尺寸的图像会自动调整大小
- javascript - 转换为字符串格式
- javascript - Highcharts:如何根据散点图中Y轴的值范围增加标记半径?
- android - 是否可以确定屏幕现在是否是沉浸式的,即使不在前景中?
- python - python中算法的时间复杂度O(n log n)
- sql-server - SQL 获取 12 周作为列
- css - Webpack 4 - 样式加载器/url 不起作用
- git - GitHub 上实际显示的合并提交的差异是什么?
- angular - rxjs 6中的mergeMap服务
- angularjs - 如何在 angularjs 中悬停时在禁用按钮上添加弹出消息?