ホームページ >バックエンド開発 >PHPチュートリアル >配列を同期するときにLaravelで追加のピボットテーブル値を割り当てる方法は?

配列を同期するときにLaravelで追加のピボットテーブル値を割り当てる方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-19 17:52:02877ブラウズ

How to Assign Additional Pivot Table Values in Laravel when Syncing an Array?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。