Laravel – Modellbeziehung auf ein anderes Modell aktualisieren
P粉674999420
2023-09-01 22:36:33
<p>Es besteht eine Viele-zu-Viele-Beziehung zwischen dem Ereignismodell und dem Patientenmodell. An einem Vorfall können mehrere Patienten beteiligt sein, und ein Patient kann an mehreren Vorfällen beteiligt sein. </p>
<p>Wenn der Benutzer eine Kopie des Patientenmodells erstellt, möchten wir in der Lage sein, die beiden Patientenmodelle zu einem zusammenzuführen. Das heißt, ich möchte die Ereignisse, die Patient 1 betreffen, zu Patient 2 verschieben, einschließlich anderer Attribute in der Pivot-Tabelle. </p>
<p>Ich habe einfache Dinge ausprobiert</p>
<pre class="brush:php;toolbar:false;">Casualty::where('patient_id', $patientOne->getKey())->update(['patient_id' => $patientTwo- >getKey()]);</pre>
<p>Aber das funktioniert nicht. Wenn ich die Methode <code>updateOnExistingPivot()</code> verwende, muss ich jedes Ereignis für Patient 1 durchlaufen und eine separate Datenbankabfrage ausführen, um den Patienten auf Patient 2 zu aktualisieren. </p>
<p>Ich habe auch versucht, den Datensatz so zu aktualisieren</p>
<pre class="brush:php;toolbar:false;">$patientOne->incidents()->update(['patient_id' => $patientTwo->getKey()]);< /pre>
<p>Dies funktioniert auch nicht, da in der Ereignistabelle keine Spalte <strong>patent_id</strong> vorhanden ist. </p>
<p>Wie kann ich das erreichen, oder mache ich etwas falsch? </p>
不确定我是否理解您的意思,您想将更多患者归入同一事故中吗?您可以使用
belongsToMany
关系并创建一个数据透视表。然后,当您想要更新数据时,只需使用sync
方法即可。您还可以尝试使用
json_encode()
将它们存储在一列中,该列仅保存用户 ID,稍后再检索它们。抱歉,无法提供更多信息,因为问题没有得到很好的描述。