検索

ホームページ  >  に質問  >  本文

Laravel - モデルの関係を別のモデルに更新する

<p>イベント モデルと患者モデルの間には多対多の関係があります。 1 つのインシデントには複数の患者が関与する場合があり、1 人の患者が複数のインシデントに関与する場合もあります。 </p> <p>ユーザーが患者モデルのコピーを作成した場合、2 つの患者モデルを 1 つにマージできるようにしたいと考えています。これは、ピボット テーブル上の他の属性も含めて、患者 1 に関係するイベントを患者 2 に移動したいことを意味します。 </p> <p>簡単なことをやってみました</p> <pre class="brush:php;toolbar:false;">Casualty::where('patient_id', $patientOne->getKey())->update(['patient_id' => $patientTwo- >getKey()]);</pre> <p>しかし、それはうまくいきません。 <code>updateOnExistingPivot()</code> メソッドを使用するということは、患者 1 の各イベントを反復処理し、別のデータベース クエリを実行して患者を患者 2 に更新する必要があることを意味します。 </p> <p>このようにレコードを更新してみました</p> <pre class="brush:php;toolbar:false;">$patientOne->incidents()->update(['patient_id' => $patientTwo->getKey()]);< /pre> <p>イベント テーブルには <strong>patent_id</strong> 列がないため、これも機能しません。 </p> <p>どうすればこれを達成できますか?それとも何か間違ったことをしていますか? </p>
P粉674999420P粉674999420497日前526

全員に返信(1)返信します

  • P粉244155277

    P粉2441552772023-09-02 19:09:51

    何を言っているのか分かりませんが、より多くの患者が同じ事件に起因すると考えますか? belongsToMany リレーションシップを使用して、ピボット テーブルを作成できます。データを更新する場合は、sync メソッドを使用するだけです。

    json_encode() を使用して、ユーザー ID のみを保持する列にそれらを保存し、後で取得することもできます。

    申し訳ありませんが、問題が詳しく説明されていないため、これ以上の情報を提供することはできません。

    返事
    0
  • キャンセル返事