【发布时间】:2016-08-17 14:56:55
【问题描述】:
$user = App\User::find(1);
$user->roles()->updateExistingPivot($roleId, $attributes);
这是我们在更新数据透视表时使用的。但我的表中有两个与$roleId 相同的值。我只想更新其中一个。我们该怎么做?
例如;这是我的 sql 表
userId -- roleId -- attributeId
1 1 1
1 1 2
这是另一个解释得更好的数据透视表:
order_id --- product_id --- feature_id --- product_quantity
在一个订单中,我有多个产品。 任何产品都可以具有多种功能。 我正在尝试按顺序保存具有不同功能的相同产品的数据库,问题从这里开始,它不适用于以下命令:
$order = Order::create( $request->all());
$product_list = $request->input('product_list');
$feature_list = $request->input('feature_list');
$product_quantity = $request->input('product_quantity');
/* attach pivot table */
$order->product()->attach($product_list);
/* get the product list as array */
foreach($product_list as $key => $product_id)
{
$order->product()->updateExistingPivot($product_id, array(
'feature_id' => $feature_list[$key],
'product_quantity' => $product_quantity[$key], // product_quantity is array
));
}
【问题讨论】:
标签: mysql laravel pivot-table multiple-columns