首页 > 解决方案 > Laravel VUEJS axios如何将数组插入数据库

问题描述

我有一个从 vue 传递到控制器的数组:

axios.post('./api/po',{addStudent:this.addStudentForm});

这是我的控制器的样子:

return $request->addStudent;

我成功地将它通过控制器,因为它能够返回它:

{student: "test", year: 1, age: "13"}

如何将其插入数据库?我试过在控制器中做这样的事情:

return Students::create([
       'student': $request['student'],
       'year': $request['year'],
       'age': $request['age'],
]);

但是它不起作用并返回错误。

Error:

    Integrity constraint violation: 1048 Column 'student' cannot be null

提前致谢

标签: laravelvue.jsvuejs2axios

解决方案


您说您可以返回$request->addStudent并得到所需的响应:{student: "test", year: 1, age: "13"}. 这意味着您需要像这样访问请求属性:

return Students::create([
       'student': $request->addStudent['student'],
       'year': $request->addStudent['year'],
       'age': $request->addStudent['age'],
]);

或者,您可以配置您的 axios 请求以将addStudent对象作为请求正文发送,如下所示:

axios.post('./api/po', this.addStudentForm);

然后,您将能够在请求后单独访问属性:

return Students::create([
       'student': $request->student,
       'year': $request->year,
       'age': $request->age,
]);

推荐阅读