ホームページ >バックエンド開発 >PHPチュートリアル >配列を同期するときにLaravelで追加のピボットテーブル値を割り当てる方法は?
Laravel sync() メソッドを使用すると、モデルの関係を関連 ID の配列と同期できます。しかし、追加のピボット テーブル値をこれらの ID に関連付ける必要がある場合はどうすればよいでしょうか?
ドキュメントの例では、単一のモデルにピボット値を割り当てる方法のみが示されています。複数のモデルに値を割り当てるには、次の構文を使用します。
<code class="php">$user->roles()->sync([ 1 => ['expires' => true], 2 => ['expires' => false], ... ]);</code>
この構文では、配列のキーと値のペアを使用して、関連する各モデルのピボット値を指定できます。
スピーカーをイベントに割り当てるためにフォーム入力を処理するシナリオを考えてみましょう。入力はスピーカー ID の配列であり、ピボット テーブルの is_speaker 列を true に設定する必要があります。
これを実現する方法は次のとおりです。
<code class="php">$speakers = (array) Input::get('speakers'); // related ids $pivotData = array_fill(0, count($speakers), ['is_speaker' => true]); $syncData = array_combine($speakers, $pivotData); $user->roles()->sync($syncData);</code>
array_fill() を使用するおよび array_combine() を使用すると、必要なキーと値のペアを含むピボット値の配列を作成し、それらをモデルのリレーションシップと同期できます。
以上が配列を同期するときにLaravelで追加のピボットテーブル値を割り当てる方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。