ホームページ > バックエンド開発 > PHPチュートリアル > LaravelでModelRelationshipsを追加のピボットフィールドと同期するにはどうすればよいですか?

LaravelでModelRelationshipsを追加のピボットフィールドと同期するにはどうすればよいですか?

DDD
リリース: 2024-10-19 17:58:30
オリジナル
299 人が閲覧しました

How to Sync ModelRelationships with Additional Pivot Fields in Laravel?

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

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート