如何在laravel中将对象数组保存到mysql数据库?
问题描述:
我正在与laravel一起使用vue.我正在尝试保存对象数组,但我无法保存单个对象,但无法做到这一点.这是我的代码App.vue
I am using vue with laravel. I am trying to save array of objects but not able to do it though i am able to save single object. Here is my code App.vue
// Not working
saveData(){
this.axios.post('/addperson', **this.rows**).then((response) => {
console.log("WOW");
})
}
//working
saveData(){
this.axios.post('/addperson', **this.rows[0]**).then((response) => {
console.log("WOW");
})
}
这是控制器代码,在传递数组时出现错误.
Here is controller code where i am getting error when i pass array.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\OrderPerson;
class PersonController extends Controller
{
public function create(Request $request){
$person = new Person([
'name' => $request->get('name'),
'age' => $request->get('age'),
'user_id' =>$request->get('user_id')''
]);
$person->save();
return response()->json('Successfully added');
}
}
有人能帮助我保存阵列吗?
Can any body help me to save the array?
答
首先将所有 this.rows
分配给一个数据集,然后将其推入axios调用,如下所示:>
First of all assign all the this.rows
to a data set then push it to the axios call something like this:
saveData(){
const postData = {
data: this.rows
}
this.axios.post('/addperson', postData).then((response) => {
console.log("WOW");
})
}
现在,在 laravel
控制器中,您可以使用 foreach
来使用此数据集.
Now in laravel
controller you can use foreach
to use this data set.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\OrderPerson;
class PersonController extends Controller
{
public function create(Request $request){
foreach($request->data as $data)
{
$container = new Person([
'name' => $data['name'],
'age' => $data['age'],
'user_id' => $data['user_id']
]);
$container->save();
}
return response()->json('Successfully added');
}
}
希望这会有所帮助.