2016-02-04 147 views
0

我有一個ParentItem模型Laravel:雄辯關係創建多

$parentItem = ParentItem::get()->first(); 

我有這樣的陣列

$items = array(
array(
    'title' => 'test1', 
    'desc' => 'test1' 
), 
array(
    'title' => 'test2', 
    'desc' => 'test2' 
) 
); 

我想添加它作爲一個有很多關係。 所以我可以做:

foreach($items as $item) { 
$parentItem->items()->create($item) 
} 

有沒有什麼辦法的方式一次創建所有..? 這樣的東西:

$parentItem->items()->createMany($items); 
+0

有什麼不對的'createMany'方法?此外,你可以像這樣得到父模型:'$ parentItem = ParentItem :: first();'。這隻會從數據庫中檢索一個項目。您現在的做法是獲取數據庫中的所有條目,然後使用PHP獲取集合中的第一個項目。 –

回答

0

你可以嘗試兩條路徑。

使用saveMany方法:

$parentItem = ParentItem::first(); 
$items = array(
    new Item(['title' => 'test1','desc' => 'test1']), 
    new Item(['title' => 'test2','desc' => 'test2']) 
); 
$parentItem->items()->saveMany($items) 

如需進一步信息,您可以在這裏閱讀。

https://laravel.com/docs/5.1/eloquent-relationships#inserting-related-models

使用insert方法:

$parentItem = ParentItem::first(); 
$items = array(
    array('title' => 'test1','desc' => 'test1','parent_item_id' => $parentItem->id), 
    array('title' => 'test2','desc' => 'test2','parent_item_id' => $parentItem->id) 
); 
Item::insert($items); 

請記住,在插入created_atupdated_at不會自動插入,你必須爲他們提供在array如果你有他們在你的桌子上。有關更多信息,請閱讀此處。

https://laravel.com/docs/5.1/queries#inserts