Laravel插入到具有一对多关系的多个表中

时间:2017-11-12 09:53:57

标签: laravel insert eloquent one-to-one laravel-5.5

我有两个表,一个是items表,其中包含项目描述(类别,名称,价格等等)。

该表与one-to-one有一个关系,另一个表叫prices表,它代表每个项目的价格。因此每个item都有一个价格。

现在我有一个用于添加项目(一行或多行)的表单:

  • item_id(int),名称(文本),价格(数字)。
  • item_id(int),名称(文本),价格(数字)。
  • item_id(int),名称(文本),价格(数字)。

我想使用雄辩的关系工具将这些项目直接插入数据库,这就是我所做的:

foreach ($request as $key => $value) {
    $item  = [];
    $price = [];
    $item['item_id'] = $value['item_id'];
    $item['name']    = $value['name'][$i];
    $price['price']  = $value['price'][$i];
    Item::create($item);
    Price::create($price);
}

是否有更好的方法可以使用eloquent直接向两个表插入请求,而无需创建数组?

1 个答案:

答案 0 :(得分:0)

您可以使用createMany方法。 See Docs

$items = $request->get('items');
Item::createMany($items);

$prices = $request->get('prices');
Price::createMany($prices);