2017-07-20 4 views
0

Ich habe diese Beziehung zwischen zwei Entitäten in Symfony 3:Lehre entfernen Seite besitzen viele zu viele Beziehung

class Project 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Id 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var ArrayCollection 
    * 
    * @ORM\ManyToMany(targetEntity="Neighborhood", inversedBy="projects") 
    * @ORM\JoinTable(name="neighborhood_project") 
    */ 
    private $neighborhoods; 

    public function __construct() { 
     $this->neighborhoods = new ArrayCollection; 
    } 

    public function getNeighborhoods() 
    {...} 

    public function setNeighborhoods(array $entities) 
    {...} 

    public function addNeighborhood(Neighborhood $entity) 
    {...} 

    public function removeNeighborhood(Neighborhood $entity) 
    {...} 
} 

class Neighborhood 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Id 
    * @ORM\Column(name="id", type="integer", nullable=false, unique=true) 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    public $id; 

    /** 
    * @var ArrayCollection 
    * 
    * @ORM\ManyToMany(targetEntity="Project", mappedBy="neighborhoods") 
    */ 
    private $projects; 

    public function __construct() { 
     $this->projects = new ArrayCollection; 
    } 

    public function getProjects() 
    {...} 

    public function setProjects(array $entities) 
    {...} 

    public function addProject(Project $entity) 
    {...} 

    public function removeProject(Project $entity) 
    {...} 
} 

Dies funktioniert gut. Aber das Problem, das ich habe, ist das Entfernen der Beziehungen.

$ em-> entfernen ($ Nachbarschaft); löschen Sie die Nachbarschaft in der Tabelle 'Nachbarschaft' und alle Beziehungen in der Tabelle 'nachbarschaft_projekt'.

$ em-> remove ($ project); löschen Sie das Projekt in der Tabelle 'Projekt' und DOES NOT löschen Sie die Beziehung in der Tabelle 'nachbarschaft_projekt'.

Ich habe viele Optionen versucht, um die Beziehung auf der besitzenden Seite zu löschen und habe keine Lösung gefunden. Wie kann ich die Beziehung beim Löschen der Eigentümerseite löschen?

Hinzugefügt:

Cascade:

@ORM\ManyToMany(targetEntity="Neighborhood", inversedBy="projects", cascade={"remove"}) 

wird nicht helfen. Dies löscht Entität, Relation und verwandte Entitäten. Ich brauche die gleiche Funktionalität wie $ em-> entfernen ($ Nachbarschaft);

+0

haben Sie versucht onDelete = "CASCADE"? Grüße – Albeis

+0

Ja, ich habe es versucht – Manium

Antwort

0

Ich habe es, meine Schuld. Ich sollte nur das Schema in der Datenbank aktualisieren (Doktrin: Schema: Update).