Laravel で追加のピボットフィールドと配列を同期する
Laravel では、sync() メソッドを使用して多対モデル間には多くの関係があります。このドキュメントでは、単一のピボット行を同期する例が示されていますが、カスタム ピボット データを複数の同期された行に関連付ける方法については明示的に説明されていません。
解決策は、関連モデルごとにピボット データの配列を指定することです。同期したい。キーが関連モデルの ID で、値がピボット フィールド値の配列であるキーと値のペアを指定すると、同期される各行に追加のピボット データを関連付けることができます。
たとえば、User モデルを考えてみましょう。ロールモデルと多対多の関係があります。この関係のピボット テーブルには有効期限フィールドがあります。それぞれに異なる有効期限値を持つ 3 つのロールをユーザーと同期する場合は、次のように実行できます。
<code class="php">$user->roles()->sync([ 1 => ['expires' => true], 2 => ['expires' => false], 3 => ['expires' => null], ]);</code>
これにより、ユーザーが 3 つのロール ID と同期され、指定された有効期限値が関連付けられます。ピボット テーブルの各行を使用します。
以上がLaravelで複数のピボットフィールドを持つ配列を同期するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。