php - Laravel 验证数组中的所有图像(具有不同的输入名称)
问题描述
当表单文件名总是不同时,我将如何为请求中的每个图像运行验证器。
我的表单文件名可以从file1
一直到section_1_image[0][]
.
我需要创建一个可以粘贴到每个控制器中的验证,它检查发布请求并验证所有文件(如果有的话)
这是我到目前为止所拥有的
$validator = Validator::make($request->all(), [
'items' => 'array',
]);
$validator->each('items', [
'*' => 'max:50'
]);
if ($validator->fails()) {
echo 'Error';
exit;
}
但这似乎没有任何作用,它只是被忽略了吗?
解决方案
使用请求中存在的文件名构建自定义规则数组,并根据它验证请求。
use Illuminate\Support\Facades\Input;
//code
$rule = [];
foreach (Input::file() as $key => $value) {
$rule = $rule + [$key => 'max:50'];
}
$validator = Validator::make($request->all(), $rule);
if ($validator->fails()) {
//validation failed
//custom error message common for all file(optional)
$validator->errors()->add('image_size_error', 'Images size exceeds!');
return redirect()
->back()
->withErrors($validator)
->withInput();
}
希望能帮助到你..
推荐阅读
- python - 什么是 pymongo 中的等效查询,并给出语法错误
- paypal - 连接沙盒账户 Paypal 时的错误
- c# - 列表中的每个项目组合
- excel - 如何从 SAP GUI Grid View 复制值并粘贴到 Excel
- flutter - 防止用户点击“。” 在颤动的文本字段中已经存在小数点后,在数字键盘中
- python - 从存储桶复制到另一个存储桶时,Amazon S3 是否会检查完整性?
- azure-data-factory-2 - 无法使用 Azure Datafactory 读取 xml 标签
- python - Python:从特定日期开始的数据框
- mysql - Spring Boot R2DBC 内部 Join 在某些字段中返回 null
- assembly - 增加时遇到困难