Postman上传图片到Laravel接口返回200但数据库未更新如何解决
问题原因&修改方案
1. Postman请求配置错误
application/json格式无法承载二进制文件内容,你需要调整请求配置:
- 删除请求头中手动设置的
Content-Type: application/json - 请求体选择
form-data格式,所有参数都在form-data中填写,image字段类型选择File后选择本地图片 - 若接口需要鉴权,需在Authorization标签中携带正确的登录凭证
2. 控制器字段对应错误
你在控制器中给图书模型赋值的name、path字段,在迁移文件中并不存在,迁移文件存储图片的字段为image,需要修改BooksController.php中图片存储相关代码:
// 原代码 $name = $request->file('image')->getClientOriginalName(); $path =$request->file('image')->store('/public/images'); $book->name = $name; $book->path = $path; // 修改为 $path = $request->file('image')->store('/public/images'); $book->image = $path;
3. 模型可赋值字段配置错误
Books模型的$fillable属性中缺少你用到的user_id字段,需要补充:
protected $fillable = [ 'image', 'price', 'title', 'quantity', 'description', 'author', 'user_id' // 新增这一行 ];
另外模型中定义的JWT相关方法、password/remember_token隐藏配置、email_verified_at类型转换都是User模型才需要的内容,放在Books模型中无效,可直接删除避免混淆。
4. 调试建议
建议将项目.env文件中的APP_DEBUG参数设置为true,开启调试模式后请求出错会直接返回具体报错信息,方便快速定位问题。
内容的提问来源于stack exchange,提问作者user16172211
相关产品推荐
相关产品推荐

