Всем добрый день!
У меня есть вопрос о сохранении коллекций в Symfony и Doctrine
Короткая версия
Я могу добавить элемент в коллекцию (сохранить) через форму, но не могу удалить (удалить).
Логика
Мне нужна возможность добавлять пользователей в командировки. Каждый добавленный пользователь должен иметь текстовое описание (например, цель командировки).
На самом деле, у меня есть 3 объекта:
Эта проблема
Как я уже сказал выше — я не могу удалить BusinessTripUser из коллекции $ users в BusinessTrip.
Я упомянул, что если я удалю однонаправленную связь между BusinessTripUser и User — все работает нормально. Похоже, это отношение мешает механизму orphanRemoval удалить потерянный объект BusinessTripUser.
Отношения между сущностями
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
Задача ещё не решена.
Других решений пока нет …