使用 Laravel Eloquent 在表中插入关联数组

问题描述 投票:0回答:3

如何使用 Laravel Eloquent 插入关联数组

我有这个数组

$data =  array (
  0 => 
    array (
      'first_id' => string '52763718329' 
      'second_id' => string '222122'
  ),
  1 => 
    array(
      'first_id' => string '527628573' (length=9)
      'second_id' => string '22210' (length=5)
   )
);

$model = new MyModel;
//$model->$data how do I pus data array?
$model->save();
database laravel-4 insert eloquent
3个回答
0
投票
$data = $data->ToArray();

DB::table('mytable')->insert($data);

0
投票

我遇到了同样的问题。 Laravel 5 说它可以处理多个数组,但似乎从来没有工作过。

一个简单的解决方案是循环并使用 foreach 进行插入。

foreach($data as $insert){ 
            $id = \DB::table('tablename')->insertGetId($insert);

        }

您还可以将其包装在事务中,这样如果其中一项失败,它们就会回滚所有内容。

//transaction start
\DB::beginTransaction();

foreach($data as $insert){ 
         $id = \DB::table('tablename')->insertGetId($insert);
         if(empty($id){    
            Log::error('Failed to insert row into database.');
            \DB::rollback();
            break;
   }
 }
//save everything
\DB::commit();

-3
投票
Its Work very well in Laravel 5 
if you have an Arry for example 

> item_array_m = array('name'=>'jhon','surname'=>'Doe');

In Eloquent the insert Query is save(); to insert in this way 

>  public function store(item_array_m)
>     {
>         var_dump($item_array_m);
>         $flight = new Carrito;
> 
>         $flight->name = $item_array_m["name"];     
>         $flight->surname = $item_array_m["surname"];
>  
> 
>         $flight->save();
>     }
© www.soinside.com 2019 - 2024. All rights reserved.