为了账号安全,请及时绑定邮箱和手机立即绑定

Axios 在 post 请求中发送数组而不是 json 对象

Axios 在 post 请求中发送数组而不是 json 对象

泛舟湖上清波郎朗 2023-10-14 15:35:20
我正在尝试使用 axios 从 Vuejs 前端向后端的 Laravel 发送发布请求。const data = {            file: {id}        }        axios.post('api/documents/remove', data).then((response) => {                console.log(response.data);            }        }).catch(err => { console.log(err.response.data); })在 laravel 中,我像这样打印请求, public function removeFile(Request $request) {     dd($request); }这是我的输出。Illuminate\Http\Request {#51  #json: Symfony\Component\HttpFoundation\ParameterBag {#43  #parameters: array:8 [  "file" => array:1 [    "id" => 61  ]}
查看完整描述

3 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

PHP 的“数组”并不是真正的数组,它们是有序的映射。这就是您的输出显示的内容,请求包含参数,这是一个有序映射,并且参数是其中file包含的有序映射。id => 61在 JavaScript 中,这将是一个对象(或者Map,有时);在许多其他语言中,它可能是某种地图或字典。PHP 将它们称为数组。

不管怎样,如果你访问file参数(我不“做”Laravel,所以我不知道你是如何做到的),你可以id像这样从中获取:$file[id ]。看看Laravel 文档,看起来是这样的:


$file = $request->input('file');

$id = $file['id'];


查看完整回答
反对 回复 2023-10-14
?
米脂

TA贡献1836条经验 获得超3个赞

请求$request传递的是数组而不是对象实例,因此,您只能像下面这样访问:

$request->input('file')['id']

或者

$request->file['id']

或者

$request->input('file.id')

或者,仅文件字段

$request-all()[0]['file']['id']


查看完整回答
反对 回复 2023-10-14
?
慕容708150

TA贡献1831条经验 获得超4个赞

您可以获取 $request 的数据为


$file = $request->input('file');

$file['id'];


//Or


$fileId = $request->input('file.id');


查看完整回答
反对 回复 2023-10-14
  • 3 回答
  • 0 关注
  • 261 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信