Laravel: 追加のピボットフィールドを使用した Sync()
Laravel では、sync() 関数を使用してモデルの関係をモデルの関係と同期します。 ID のセット。ただし、同期時に追加のピボット フィールドを指定することもできます。
デフォルトの使用法:
Laravel ドキュメントで説明されているように、単純な ID セットを同期できます。次のように:
<code class="php">$user->roles()->sync([1, 2, 3]);</code>
ピボット フィールドとの同期:
特定のピボット テーブルの値を ID に関連付けたい場合は、それらを配列として指定できます。
<code class="php">$user->roles()->sync([ 1 => ['expires' => true] ]);</code>
この例では、expires フィールドが true に設定された単一のピボット行を追加します。
カスタム データを含む複数のピボット レコード:
複数のモデルをカスタム ピボット データと同期するには、次の構文を使用できます:
<code class="php">$user->roles()->sync([ 1 => ['expires' => true], 2 => ['expires' => false], ... ]);</code>
この例では、それぞれ独自の有効期限値を持つ 2 つのロールを同期します。
配列入力を使用した例:
ID とピボット データを配列として受信している場合は、array_combine() を使用して同期データを作成できます:
<code class="php">$speakers = (array) Input::get('speakers'); // Get related IDs $pivotData = array_fill(0, count($speakers), ['is_speaker' => true]); $syncData = array_combine($speakers, $pivotData); $user->roles()->sync($syncData);</code>
次のガイドラインに従うことで、次のことができます。 Laravel のカスタム ピボット フィールドとデータを効果的に同期します。
以上がLaravelでModelRelationshipsを追加のピボットフィールドと同期するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。