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

Laravel自定义Request验证PUT请求始终报错、参数为空如何解决?

PHP原生不支持解析PUT请求下的multipart/form-data格式数据(带文件上传的请求必须使用该格式),因此即使请求Payload携带了完整参数,Laravel的Request实例也无法读取到对应数据,才会出现$request为空、必填项验证持续失败的情况。

解决方案

  • 方案1(最通用,推荐):改用POST请求+Laravel方法伪造
    前端请求方法改为POST,同时在请求参数中新增_method=PUT,或者在请求头中添加X-HTTP-Method-Override: PUT即可。
    Laravel会自动识别该请求为PUT类型,路由和业务逻辑完全不需要改动,同时可以正常解析表单参数和上传文件。
  • 方案2(适配非强制上传文件的更新场景):调整验证规则
    如果业务允许更新操作不传新文件时复用原有资源,可将UpdatePdfResourceRequest中的file规则改为nullable|mimes:pdf,仅当请求携带文件时才触发验证,避免无意义的验证报错。

另外注意你现有代码中的笔误:ManagementController.php中存储文件的代码行末尾误写为l,需要替换为英文分号;,否则会触发PHP语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:09:02