(Я француз, извини, если ошибаюсь). Здравствуйте, я пытаюсь связать свою сущность (называемую «Evenement») с самим собой, потому что событие от 0 до X может быть связано с событием. У меня есть одна форма для добавления нового события (она работает нормально), и на той же странице я хочу иметь другую форму, чтобы связать событие, которое я выбираю, с текущим событием. Итак, в EvenementType у меня есть два конструктора (я не знаю, хорошее ли это решение, поэтому я прокомментировал второй конструктор и создал EvenementAssocieType.php с этим построителем).
Но когда я проверяю мероприятие (флажок используется для связывания мероприятия с другим), ничего не добавляется, и в профилировщике моя отправленная форма не отображается.
Вы можете найти мой код здесь: https://openclassrooms.com/forum/sujet/symfony-evenements-lies-a-un-evenement
Спасибо за вашу помощь !






Вы должны создать отношения «многие ко многим» в своей сущности. Вот пример, найденный на веб-сайт доктрины, который вы можете адаптировать к своему коду:
<?php
/** @Entity */
class User
{
// ...
/**
* Many Users have Many Users.
* @ManyToMany(targetEntity = "User", mappedBy = "myFriends")
*/
private $friendsWithMe;
/**
* Many Users have many Users.
* @ManyToMany(targetEntity = "User", inversedBy = "friendsWithMe")
* @JoinTable(name = "friends",
* joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")},
* inverseJoinColumns = {@JoinColumn(name = "friend_user_id", referencedColumnName = "id")}
* )
*/
private $myFriends;
public function __construct() {
$this->friendsWithMe = new \Doctrine\Common\Collections\ArrayCollection();
$this->myFriends = new \Doctrine\Common\Collections\ArrayCollection();
}
// ...
}
Спасибо за ответ, но в моем коде что-то не так, но я не знаю, что это ...
/**
* ORM\@ManyToMany(targetEntity = "KeolisBundle\Entity\Evenement", mappedBy = "myEvents")
* @ORM\JoinColumn(nullable=true)
*/
private $evenements;
/**
* ORM\@ManyToMany(targetEntity = "KeolisBundle\Entity\Evenement", inversedBy = "evenements", cascade = {"persist"})
* ORM\@JoinTable(name = "evenement_evenement",
* joinColumns = {@JoinColumn(name = "evenement_id", referencedColumnName = "id")},
* inverseJoinColumns = {@JoinColumn(name = "event_assoc_id", referencedColumnName = "id")}
* )
*/
private $myEvents;Когда я создаю свои сущности, ничего не меняется (у меня в конструкторе есть myEvents). И когда я сбрасываю SQL-запрос, у меня появляется сообщение «ничего не обновлено».
Работает, 1 штуку в анкете забыл поменять!