2017-02-15 72 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

儘量只在DB到「插入」數據,如果你的表稱爲「item_lists」你可以嘗試這樣的:

$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->保存();