2017-02-15 17 views
0

他のテーブルの情報でテーブルを埋めようとしています。このような何か:Laravelの他のテーブルからの情報をテーブルに書き込む

$item = new item(); 
$item->save(); 

//this works 
$item_actions-> new item_actions(); 
$item_actions->item_id = $item->id; 
$item_actions->save(); 

//this doesn't work 

$default_items = default_items::all(); 

foreach($default_items as $default_item) 
{ 
$item_list = new item_list(); 
$item_list->item_id = $item->id; 
$item_list->name = $default_item->name; 
$item_list->save() 
} 

return back(); 

私はdd($default_items)を使用している、それがdefault_itemsテーブルからすべての単一の項目が含まれています。エラーはなく、テーブルは単に満たされず、プログラムは続行されます。しかし、$ item_actionsが動作するので、foreach上で何かが起こっている必要があります。

アイデア?

答えて

2

あなたのテーブルは、「item_lists」と呼ばれている場合は、このように試すことができ、単にDB内のデータを「挿入」するようにしてください:

$dataSet = []; 
foreach ($default_items as $default_item) { 
    $dataSet[] = [ 
     'item_id' => $item->id, 
     'name' => $default_item->name, 
    ]; 
} 

DB::table('item_lists')->insert($dataSet); 

たぶんlaravelはこれだけ追加し、DBのためのクラスが必要になります。

use DB; 
0

は、私はあなたがセミコロンの後

$ item_list->保存()あなたのループ内でメソッドを保存欠けていると思います。

関連する問題