Ankündigung

Einklappen
Keine Ankündigung bisher.

[Doctrine] Self-referenziertes Objekt löschen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Doctrine] Self-referenziertes Objekt löschen

    Hallo zusammen,
    ich arbeite mit Doctrine und Symfony 4.

    Ich habe eine Doctrine-Entity, die auf sich selber per One-To-One referenziert:

    PHP-Code:
    /**  
    * @ORM\Entity(repositoryClass="App\Repository\AdRepository")  
    */  
    class Ad {

    /**
    * @ORM\OneToOne(targetEntity="\App\Entity\Ad")
    * @ORM\JoinColumn(name="ad_id", referencedColumnName="id", onDelete="SET NULL")
    */ 
    protected $ad;


    --> https://www.doctrine-project.org/pro...lf-referencing
    --> Entity gekürzt.


    Wenn ich nun aber versuche das Objekt "Ad" zu löschen per:

    PHP-Code:
      $entityManager->remove($ad);
    $entityManager->flush(); 

    erhalte ich stets eine MySQL-Fehlermeldung:
    Code:
     SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails

    Komme aktuell nicht weiter – Nach Recherche hätte ich das Problem mit onDelete="SET NULL" auflösen können sollen.
    Kann mir jemand sagen, wo mein Problem liegt?

    Vermutlich ist etwas ganz Dummes, oder?


    Edit: Beim Versuch das Objekt zu löschen, hat es zu dem Zeitpunkt keine Referenz zu einem anderen Objekt.
    $ad->getAd() würde also NULL zurückliefern.

  • #2
    Update ...
    Der Fehler lag an einem referenzierten Feld – Nicht an der Selbst-Referenzierung.
    Die SQL-Fehlermeldung hat mich hier in die Irre geführt.

    Thema beendet! Danke fürs Lesen!

    Kommentar

    Lädt...
    X