$user = App\User::find(1);
$user->roles()->updateExistingPivot($roleId, $attributes);
这是我们在更新数据透视表时使用的。但我的表格中有两个与$roleId
相同的值。我只想更新其中的一个。我们怎么做到这一点?具有多个ID的更新数据透视表
例如;这是我的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
));
}
我添加了一个详细的例子。它可以更好地解释问题 –
你能把它分成两个表。 order_id --- product_id&product_id --- feature_id同时拥有belongsToMany关系 – Parithiban
我可以用场景解释你。用户有多个角色,每个角色都有多个权限。所以用户 - 在一个表和角色中的角色 - 在另一个表中的权限 – Parithiban