2016-07-12 2 views
-2

Я хочу, чтобы иметь возможность выбрать школу (которая имеет свою собственную сущность) при создании миссии (также имеет свою сущность)Не удалось создать ManyToMany

Поскольку школа может иметь несколько миссий, и вы можете выберите несколько школ при создании миссии, я использовал ManyToMany.

Проблема заключается в том, что после создания этого «ManyToMany», генерирования сущностей и обновления моей схемы, Symfony создал таблицу, но оставил ее полностью пустой, без двух столбцов, которые я просил. Я действительно не привык к Symfony или к системе ManyToMany, поэтому я, возможно, ошибся, не заметив этого, но все же считаю это странным.

Вот интересная часть моего Ecole (школа) лица:

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; 
} 

А вот интересная часть моей сущности миссии:

/** 
* @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; 
} 

После всего этого был создан, я должен был чтобы получить мультиселектор со списком всех школ, сохраненных в базе данных (я уже добавил его в файл missionType), но я ничего не получаю.

Я действительно не знаю, перевернул ли аннотации, или если часть «joinTable» верна, но я полностью потерялся здесь.

У кого-нибудь есть идеи?

Спасибо заранее

ответ