$user = App\User::find(1);
$user->roles()->updateExistingPivot($roleId, $attributes);
これはピボットテーブルを更新するときに使用します。私のテーブルには$roleId
という2つの同じ値があります。私はそれらのうちの1つだけを更新したい。どうしたらいい?複数のIDを持つピボットテーブルを更新する
たとえば、
order_id --- product_id --- feature_id --- product_quantity
ために、私は複数の製品を持っている:これは、これはよりよい説明別のピボットテーブルで私のSQLテーブル
userId -- roleId -- attributeId
1 1 1
1 1 2
です。 いずれの製品も複数の機能を持つことができます。 私がために、データベースに異なる機能を持つ同じ製品を保存しようとしていますし、問題はここから始まり、それがこのコマンドでは動作しません:
$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
));
}
Iは、詳細な例を追加しました。それはより良い問題を説明することができます –
あなたは2つのテーブルにそれを分けることができます。 order_id --- product_idとproduct_id ---両方のbelongsToMany関係を持つfeature_id – Parithiban
私はそれをシナリオで説明できます。ユーザーには複数の役割があり、各役割には複数の権限があります。したがって、1つのテーブル内のユーザーロールと別のテーブル内のロール – Parithiban