TypeError非法偏移类型:图片MIME类型验证器报错问询
错误原因
验证规则数组的键使用错误:你把$request->file('image1')这类UploadedFile对象作为验证规则的键,而Laravel验证器要求规则的键必须是表单字段名(字符串类型)。PHP数组的键仅支持整数或字符串,用对象作为键会直接触发「Illegal offset type」类型错误。
解决代码
将验证规则的键改为表单字段名(字符串),修正后的代码如下:
$validate = Validator::make($request->all(), [ 'image1' => 'required|mimes:jpg,png,jpeg', 'image2' => 'required|mimes:jpg,png,jpeg', 'image3' => 'required|mimes:jpg,png,jpeg', 'image4' => 'required|mimes:jpg,png,jpeg', ]); if ($validate->fails()) { return response($validate->errors(), 400); }
原理说明
Laravel的Validator::make()方法接收的验证规则数组,是表单字段名(字符串)=> 验证规则的关联结构。验证器会自动从请求中匹配对应字段名的文件,执行mimes规则校验,不需要手动传入文件对象。
内容的提问来源于stack exchange,提问作者Aziz
相关产品推荐
相关产品推荐

