Intereting Posts
Стандартный способ переключения из / в user_timezone и gmt Новое для входа и сеансов PHP; Это достаточно безопасно? Устранение неполадок mysqli_fetch_assoc () Как читать значения подгрупп из файла .ini в java? Laravel: выполнение некоторых задач при каждой вставке / обновлении при использовании Query Builder или Eloquent ORM Невозможность присвоить значения массиву из цикла wrap <b> -tag вокруг первого слова строки с preg_replace Использование Hook_form_alter для переданных значений веб-формы Найти пользователя в Laravel по имени пользователя Как отправить данные на сайт с помощью httpPost, сбоев приложений Номер страницы с разбивкой по страницам Magento получает коллекцию продуктов в произвольном порядке PHPstorm 6.03: изменение шрифта и размера редактора и использование клавиши табуляции Когда нужно санировать код PHP и MySQL, прежде чем хранить его в базе данных или когда он отображается? Сброс выходного буфера в настройке Apache / Nginx

Symfony и Doctrine – не могут удалить элемент из коллекции (отношение Many-to-Many с дополнительным полем)

Всем добрый день! У меня вопрос о сохранении коллекции в Symfony и Doctrine

Краткая версия

Я могу добавить элемент в коллекцию (persist) через форму, но не могу удалить (удалить).

Логика

Мне нужна возможность добавлять пользователей в командировки. Каждый добавленный пользователь должен иметь текстовое описание (например, цель для командировки).

Фактически, у меня есть 3 объекта:

  • Командировка
  • BusinessTripUser (сохраняет связанный идентификатор пользователя, идентификатор BusinessTrip и текстовое поле «описание»)
  • Пользователь (объект поставщика)

Проблема

Как я уже сказал выше – я не могу удалить 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