Nec*_*sky 2 php collections laravel eloquent
我有一个 ParentItem 模型
$parentItem = ParentItem::get()->first();
Run Code Online (Sandbox Code Playgroud)
我有这个数组
$items = array(
array(
'title' => 'test1',
'desc' => 'test1'
),
array(
'title' => 'test2',
'desc' => 'test2'
)
);
Run Code Online (Sandbox Code Playgroud)
我想添加它,因为它有很多关系。所以我可以这样做:
foreach($items as $item) {
$parentItem->items()->create($item)
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以一次性创建所有内容吗?就像是:
$parentItem->items()->createMany($items);
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以尝试两条路径。
使用saveMany方法:
$parentItem = ParentItem::first();
$items = array(
new Item(['title' => 'test1','desc' => 'test1']),
new Item(['title' => 'test2','desc' => 'test2'])
);
$parentItem->items()->saveMany($items)
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息,您可以阅读此处。
https://laravel.com/docs/5.1/eloquent-relationships#inserting-lated-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);
Run Code Online (Sandbox Code Playgroud)
请记住,在插入created_at时updated_at不会自动插入,array如果表中有它们,则必须在 中提供它们。欲了解更多信息,您可以阅读此处。
| 归档时间: |
|
| 查看次数: |
6430 次 |
| 最近记录: |