Laravel 中带有 FormData 的 HTTP PATCH 和 PUT 请求
在 Laravel RESTful 应用中,经常会遇到 PATCH 和 PUT 请求检索失败的情况使用 form-data 从 Postman 发送的数据。
问题
使用 form-data 时, $request->all() 方法返回一个空数组用于 PATCH 和 PUT 请求。这会阻止后端接收预期的参数。
解决方案
要解决此问题,可以采用一种解决方法,将 PUT 或 PATCH 请求转换为 POST 请求Postman:
通过修改Postman中的请求类型,数据将作为POST请求成功发送,即使它被作为 PATCH 或 PUT 请求进行路由。
示例
对于通过表单数据发送数据的 POST 请求:
Route::post('testimonials/{testimonial}', 'TestimonialController@update');
在 Postman 中使用带有表单数据的 PATCH 或 PUT 时:
// Request will be received as a POST request Route::patch('testimonials/{testimonial}', 'TestimonialController@update'); Route::put('testimonials/{testimonial}', 'TestimonialController@update');
注意:
此解决方法可能不符合 RESTful 原则,因为它有效地改变了请求类型为 POST。然而,它提供了一个功能解决方案,用于通过带有 PATCH 和 PUT 请求的表单数据传输数据。
以上是**为什么 Laravel 中使用 FormData 的 PATCH 和 PUT 请求会失败?**的详细内容。更多信息请关注PHP中文网其他相关文章!