在 laravel vue 中通过 axios post 发送对象数组

Posted

技术标签:

【中文标题】在 laravel vue 中通过 axios post 发送对象数组【英文标题】:send Array of object via axios post in laravel vue 【发布时间】:2021-05-22 19:26:09 【问题描述】:

我正在使用 vue 和 laravel。我在 console.log(array_of_obj) 中得到了这样的对象数组:

[…]
​
0: Object  id: Getter & Setter, employee_id: Getter & Setter, manual_id: Getter & Setter, … 
​
1: Object  id: Getter & Setter, employee_id: Getter & Setter, manual_id: Getter & Setter, … 
​
2: Object  id: Getter & Setter, employee_id: Getter & Setter, manual_id: Getter & Setter, … 

每个对象都包含我想要的行数据。现在我想通过 axios 发布请求将它发送到 Laravel 控制器。我怎样才能做到这一点? 我试过这种方式:

let json=JSON.stringify(array_of_obj);
let post_data=json_data:json
 store.dispatch('employees/EmployeeListDownloadPdf', post_data).catch(err =>  console.error(err) )

在我的 vuex 部分:

EmployeeListDownloadPdf(ctx, employeeList) 
                return new Promise((resolve, reject) => 
                    
                    axios(
                        url: '/api/employees/employeeListData',employeeList,
                        method: 'POST',
                        
                      )
                        //.then(response => resolve(response))
                        .then((response) => 
                            //console.log(response.data)
                            
                          );
                        //.catch(error => reject(error))
                )
            ,  

但在我的控制器中,我尝试使用以下代码但得到空数组。

dd(json_decode($request->all(),true));
dd(json_decode($request,true));

我想将所有数据输入我的控制器,但现在无法访问它们。我该怎么做?

【问题讨论】:

我认为您需要向我们展示 VueX 操作 employees/EmployeeListDownloadPdf 的作用。您分享的内容并未显示您的 VueJS 应用程序如何将数据发送到服务器。 现已更新。请检查 【参考方案1】:

您错误地使用了axios():如果您使用read the docs,则需要将employeeList 分配给对象中的数据属性,即:

axios(
    url: '/api/employees/employeeListData',
    data: employeeList,
    method: 'POST'
)

【讨论】:

现在我可以在 Controller 中获取我的数据了。非常感谢。

以上是关于在 laravel vue 中通过 axios post 发送对象数组的主要内容,如果未能解决你的问题,请参考以下文章

在 Vue.js 3 中通过 Axios 调用 API 登录时如何隐藏凭据?

vue token 登录验证 Laravel

Vue项目中通过CDN引入文件并使用

在 Laravel 8 中通过循环获取数组数据

在vue项目中使用axios

检查文件夹是不是已经存在,如果没有在 laravel 中通过 id 创建一个新文件夹