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>