2016-04-19 13 views
1

こんにちはすべて私は一度にデータベースに複数の行を挿入しようとしています。現在は、一度に1行しか保存できません。 私は次のように行われている:laravelに一度にバルクデータを挿入する方法は?

public function addNewPriceRevision($data){ 
$PriceRevision=new ProductPriceRevision(
    [ 
     'product_id'=>$data->product_id, 
     'invent_price'=>$data->invent_price, 
     'revised_price'=>$data->revised_price, 
     'effective_date'=>$data->effective_date, 
     'deleted'=>$data->deleted, 
     'remark'=>$data->remark, 
     'user'=>$data->user, 
     'date'=>$data->updated_at, 

    ] 
    ); 
$PriceRevision->save(); 
return Common::getJsonResponse(true, 'new price revision created successfully!', 200); 
} 
+0

この回答を確認してくださいhttp://stackoverflow.com/questions/12702812/bulk-insertion-in-laravel-using-雄弁のオーマン – Sajeewa

答えて

0

配列にすべてのオブジェクトを変換しようとした後、複数の配列から配列を作成します。

$data = array($data1->toArray(), $data2->toArray()); 

あなたはタイムスタンプを追加する必要がある場合は、手動で行う必要があります。

$date = date('Y-m-d H:i:s'); 

$data1 = $data1->toArray(); 
$data1['created_at'] = $date; 
$data1['updated_at'] = $date; 

$data2 = $data2->toArray(); 
$data2['created_at'] = $date; 
$data2['updated_at'] = $date; 

$data = array($data1, $data2); 

は、その後、あなたは行を作成するためにmass assignment機能を使用することができます

ProductPriceRevision::create($data); 

そしてProductPriceRevisionモデル内$fillable配列を埋めることを忘れないでください:

protected $fillable = [ 
    'product_id', 
    'invent_price', 
    'revised_price', 
    'effective_date', 
    'deleted', 
    'remark', 
    'user', 
    'updated_at' 
]; 
関連する問題