Всем добрый день! У меня вопрос о сохранении коллекции в Symfony и Doctrine
Краткая версия
Я могу добавить элемент в коллекцию (persist) через форму, но не могу удалить (удалить).
Логика
Мне нужна возможность добавлять пользователей в командировки. Каждый добавленный пользователь должен иметь текстовое описание (например, цель для командировки).
Фактически, у меня есть 3 объекта:
Проблема
Как я уже сказал выше – я не могу удалить BusinessTripUser из коллекции $ users в BusinessTrip. Я упомянул, что если я удалю однонаправленную связь между BusinessTripUser и User – все будет работать нормально. Похоже, что это отношение не позволяет механизму orphanRemoval удалять осиротевший BusinessTripUser enity.
Отношения между субъектами
class BusinessTrip { /** * @ORM\OneToMany(targetEntity="OQ\BusinessTripBundle\Entity\BusinessTripUser", mappedBy="businessTrip", cascade={"persist","remove"}, orphanRemoval=true) */ protected $users; }
class BusinessTripUser /** * @ORM\ManyToOne(targetEntity="Oro\Bundle\UserBundle\Entity\User") * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) */ protected $user; /** * @ORM\ManyToOne(targetEntity="OQ\BusinessTripBundle\Entity\BusinessTrip", inversedBy="users") * @ORM\JoinColumn(name="business_trip_id", referencedColumnName="id", nullable=false) */ protected $businessTrip; }
Symfony v2.7.3, Doctrine v2.5.1