Я хочу, чтобы иметь возможность выбрать школу (которая имеет свою собственную сущность) при создании миссии (также имеет свою сущность)Не удалось создать 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» верна, но я полностью потерялся здесь.
У кого-нибудь есть идеи?
Спасибо заранее