Laravel - 將模型關係更新到另一個模型
P粉674999420
2023-09-01 22:36:33
<p>事件模型與病患模型之間存在多對多關係。一個事件可以涉及多個患者,一個患者也可以捲入多個事件。 </p>
<p>如果使用者建立患者模型的副本,我們希望能夠將這兩個患者模型合併為一個。這意味著我想將患者 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>
不確定我是否理解您的意思,您想將更多患者歸入同一事故中嗎?您可以使用
belongsToMany
關係並建立資料透視表。然後,當您想要更新資料時,只需使用sync
方法即可。您也可以嘗試使用
json_encode()
將它們儲存在一列中,該列僅保存使用者 ID,稍後再檢索它們。抱歉,無法提供更多信息,因為問題沒有得到很好的描述。