You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8提交表单报错:name须为字符串、image必填

错误原因

两个报错本质是同一个前端笔误引发的连锁问题,核心错误出在表单视图的图片上传控件上。
查看你的视图代码,图片上传输入框写法如下:

<div class="mb-3">
    <label>Image</label>
    <input type="file" name="name" class="form-control">
</div>

这里文件输入框的name属性值错写成了name,和验证规则里定义的image字段名完全不匹配,直接触发两个报错:

  • 后端验证阶段接收不到名为image的上传文件,触发The image field is required(image字段为必填项)错误
  • 你选择的上传文件被绑定到了name字段上,而name字段的验证规则要求传入字符串类型,实际拿到的是文件上传实例,因此触发The name must be a string(name字段必须为字符串)错误
修复方法
  1. 先修正前端笔误,把图片上传控件的name属性改成image,和验证规则保持一致:
<input type="file" name="image" class="form-control">

改完这一处,你当前遇到的两个验证报错就会直接消失。

  1. 建议顺带修复代码里几个隐蔽的逻辑bug,避免后续出现功能异常:
    • 上传文件名拼接缺少扩展名分隔符:你当前写的$filename = date('YmdHi').$file->getClientOriginalExtension();生成的文件名会是202405201430png这种没有点分隔的格式,要改成$filename = date('YmdHi').'.'.$file->getClientOriginalExtension();
    • 图片路径没有赋值给模型:你在控制器里处理完上传文件后,只把文件名存到了$data数组,没有赋值给$category->image,会导致分类数据保存时图片字段为空,需要在文件上传处理逻辑里加上$category->image = $filename;
    • 状态赋值行末尾多写了一个分号,属于冗余语法,可以删掉多余的分号
    • 视图里的标题标签不匹配:<h4 class="mt-4"> Add Category</h1>是h4开头、h1闭合,属于HTML语法错误,建议改成对应的</h4>闭合标签,避免页面样式异常。

内容的提问来源于stack exchange,提问作者Belle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 12:27:27