suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Laravel – Modellbeziehung auf ein anderes Modell aktualisieren

<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>
P粉674999420P粉674999420451 Tage vor488

Antworte allen(1)Ich werde antworten

  • P粉244155277

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

    不确定我是否理解您的意思,您想将更多患者归入同一事故中吗?您可以使用 belongsToMany 关系并创建一个数据透视表。然后,当您想要更新数据时,只需使用 sync 方法即可。

    您还可以尝试使用 json_encode() 将它们存储在一列中,该列仅保存用户 ID,稍后再检索它们。

    抱歉,无法提供更多信息,因为问题没有得到很好的描述。

    Antwort
    0
  • StornierenAntwort