dpstir0081
2017-09-16 06:10
浏览 251
已采纳

如何在laravel中将对象数组保存到mysql数据库?

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?

图片转代码服务由CSDN问答提供 功能建议

我正在使用带有laravel的vue。 我试图保存对象数组但不能这样做,虽然我能够保存单个对象。 这是我的代码 App.vue

  //不工作
saveData(){
 this.axios.post('/ addperson',** this.rows *  *)。then((response)=&gt; {
 console.log(“WOW”); 
})
} 
 
 // working 
 saveData(){
 this.axios.post  ('/ addperson',** this.rows [0] **)。then((response)=&gt; {
 console.log(“WOW”); 
})
} 
   
 
 

这是控制器代码,当我传递数组时,我收到错误。

 &lt;?php 
 
namespace App \  Http \ Controllers; 
 
use Illuminate \ Http \ Request; 
use App \ OrderPerson; 
 
class PersonController扩展Controller 
 {
公共函数create(Request $ request){
 
 $ person = new Person  ([
'name'=&gt; $ request-&gt; get('name'),
'age'=&gt; $ request-&gt; get('age'),
'user_id'=&gt;  $ request-&gt; get('user_id')''
 
)); 
 
 $ person-&gt; save(); 
返回响应() - &gt; json('成功添加'); 
  } 
} 
   
 
 

任何正文都可以帮我保存数组吗?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • duandang2123 2017-09-16 07:23
    已采纳

    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");
      })
    }
    

    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');
      }
    }
    

    Hope this helps.

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题