Laravel 5如何将两个相关表插入(多个)到一个查询中

时间:2016-12-10 11:01:05

标签: php laravel eloquent

我有一张OrderProduct

的表格
  • 订单表:id,order_name
  • 产品表:id,orders_id,product_name

在我的模型中: Order可以有多个productsProduct属于order

以下是我的观点:

<input type="text" name="order_name"> 
<input type="text" name="product_name">

<input type="text" name="order_name"> 
<input type="text" name="product_name">

从上面的视图中,我有两种形式,用户可以通过两种输入添加两种形式。

现在我的问题是如何在控制器中编写逻辑?

我只知道用多个产品编写插入一个订单的方法。但我不知道如何使用相关产品插入多个订单。

2 个答案:

答案 0 :(得分:0)

您应该使用数据透视表,因为它是两个表之间的多对多关系。

由于产品不仅属于一个订单而且属于许多订单且订单可以包含许多产品,因此数据透视表是最佳选择。

如果您不知道数据透视表的内容,请参阅此处:http://laraveldaily.com/pivot-tables-and-many-to-many-relationships/

他们在一个非常类似于你的例子中解释它。

答案 1 :(得分:0)

试试这个:

$order = new Order();
$order->order_name = $request->order_name;

if($order->save()) {
   $product = new Product();
   foreach($request->product_name as $product) {
     $product->product_name = $product;
     $product->order_id = $order->id;
     $product->save();
   }
}