无法通过邮递员提交请求提交表单数据

Joy*_*ner 6 php laravel lumen

我正在使用 lumen api 5.6。这是我的路线 $router->PUT('collections/{collectionId}' 在邮递员中,我像这样调用这个 api。 在此处输入图片说明

这是该请求的正文 在此处输入图片说明

在这里看到我在这里有 CollectioPoints 但它在验证中失败。通过 formdata 发送的数据无法在验证中识别。

但是,如果我将路由从 put 发送到 post [$router->POST('collections/{collectionId}'],则通过表单数据发送的所有数据都会被识别,并且我会得到如下正确响应 在此处输入图片说明

为什么会发生这种情况。我不能通过放置请求发送表单数据吗?谢谢你。

小智 14

Laravel(Lumen) 会作弊,因为 html 表单只支持 GET 和 POST,但它确实理解真正的 PUT/PATCH 请求。

在 Postman 中,您应该发送 POST 并将 _method 设置为 PUT(与发送表单相同)以使您的数据和文件可见

 _method = "PUT"
Run Code Online (Sandbox Code Playgroud)

或者

如果您没有任何文件只有数据,那么您可以在 Postman 中选择下面的选项中写入您的参数

 x-www-form-urlencode 
Run Code Online (Sandbox Code Playgroud)

或者

您想使用 PUT 方法使用form-Data选项发送数据, 您应该使用这样的东西https://gist.github.com/devmycloud/df28012101fbc55d8de1737762b70348


小智 7

例子

标头:Content-Type application/x-www-form-urlencoded

_方法=“放置”

你的控制器

return $request->file('avatar');
Run Code Online (Sandbox Code Playgroud)

图像示例

在此输入图像描述