ホームページ  >  記事  >  バックエンド開発  >  Laravelで複数のピボットフィールドを持つ配列を同期するにはどうすればよいですか?

Laravelで複数のピボットフィールドを持つ配列を同期するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-19 17:53:29872ブラウズ

How to Sync an Array with Multiple Pivot Fields in Laravel?

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

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