2016-07-12 12 views
-2

Ich möchte einrichten können, eine Schule wählen (das seine eigene Einheit hat), während eine Mission zu schaffen (auch seine Einheit hat)konnte keine ManyToMany

Da eine Schule mehrere Missionen haben kann, und Sie können Wählen Sie mehrere Schulen bei der Erstellung der Mission, ich habe eine ManyToMany verwendet.

Das Problem ist, dass nach dem Erstellen dieser "ManyToMany", generieren die Entitäten und aktualisieren mein Schema, erstellt Symfony eine Tabelle, aber ließ es völlig leer, ohne die beiden Spalten, die ich gefragt. Ich bin weder an Symfony noch an das ManyToMany-System gewöhnt, also hätte ich vielleicht einen Fehler gemacht, ohne es zu bemerken, aber ich finde das immer noch komisch.

Hier ist der interessante Teil meiner ecole (Schule) Einheit:

class Ecole{ 

// ... 

    /** 
    * @ORM\ManyToMany(targetEntity="MissionBundle\Entity\Mission", mappedBy="ecolesDispo") 
    */ 
    protected $missionsDispos; 

// ... 

/** 
* Add missionsDispo 
* 
* @param \MissionBundle\Entity\Mission $missionsDispo 
* 
* @return Ecole 
*/ 
public function addMissionsDispo(\MissionBundle\Entity\Mission $missionsDispo) 
{ 
    $this->missionsDispos[] = $missionsDispo; 

    return $this; 
} 

/** 
* Remove missionsDispo 
* 
* @param \MissionBundle\Entity\Mission $missionsDispo 
*/ 
public function removeMissionsDispo(\MissionBundle\Entity\Mission $missionsDispo) 
{ 
    $this->missionsDispos->removeElement($missionsDispo); 
} 

/** 
* Get missionsDispos 
* 
* @return \Doctrine\Common\Collections\Collection 
*/ 
public function getMissionsDispos() 
{ 
    return $this->missionsDispos; 
} 

Und hier ist der interessante Teil meiner Mission Einheit:

/** 
* @ORM\ManyToMany(targetEntity="EcoleBundle\Entity\Ecole", inversedBy="missionsDispo") 
* @ORM\JoinTable(name="Mission2Ecole", 
*  joinColumns={@ORM\JoinColumn(name="em_id", referencedColumnName="id")}, 
*  inverseJoinColumns={@ORM\JoinColumn(name="me_id", referencedColumnName="id")} 
* ) 
*/ 
protected $ecolesDispo; 

// ... 

/** 
* Constructor 
*/ 
public function __construct() 
{ 
    $this->ecolesDispo = new \Doctrine\Common\Collections\ArrayCollection(); 
} 

/** 
* Add ecolesDispo 
* 
* @param \EcoleBundle\Entity\Ecole $ecolesDispo 
* 
* @return Mission 
*/ 
public function addEcolesDispo(\EcoleBundle\Entity\Ecole $ecolesDispo) 
{ 
    $this->ecolesDispo[] = $ecolesDispo; 

    return $this; 
} 

/** 
* Remove ecolesDispo 
* 
* @param \EcoleBundle\Entity\Ecole $ecolesDispo 
*/ 
public function removeEcolesDispo(\EcoleBundle\Entity\Ecole $ecolesDispo) 
{ 
    $this->ecolesDispo->removeElement($ecolesDispo); 
} 

/** 
* Get ecolesDispo 
* 
* @return \Doctrine\Common\Collections\Collection 
*/ 
public function getEcolesDispo() 
{ 
    return $this->ecolesDispo; 
} 

Nach all erstellt wurde, sollte ich um einen Multiselektor mit der Liste aller in der Datenbank gespeicherten Schulen zu bekommen (ich habe es bereits zur missionType-Datei hinzugefügt), bekomme aber absolut nichts.

Ich weiß nicht wirklich, ob ich die Anmerkungen invertiert habe, oder ob der "JoinTable" -Teil korrekt ist, aber ich bin hier völlig verloren.

Hat jemand eine Idee?

Vielen Dank im Voraus

Antwort