Доктрина: нельзя удалить элемент с обратной стороны отношения
У меня есть отношение ManyToMany (предложение может иметь много баннеров, а баннер может принадлежать многим предложениям). Я не понимаю, почему это работает:
$banner->getOffers()->removeElement($this->offer);
Но это не так:
$this->offer->getBanners()->removeElement($banner);
Это мои сущности:
Class Banner
{
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Offer", inversedBy="banners")
*/
private $offers;
public function __construct()
{
$this->offers = new ArrayCollection();
}
public function getOffers(): Collection
{
return $this->offers;
}
}
-
Class Offer
{
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Banner", mappedBy="offers")
* @ORM\JoinColumn
*/
private $banners;
public function __construct()
{
$this->banners = new ArrayCollection();
}
public function getBanners(): Collection
{
return $this->banners;
}
}
метод removeElement() возвращает true:
Я пытался упорствовать $this->offer
и даже $banner
, но ничего не изменилось, строка не удаляется из banner_offer
Таблица.
Я на Доктрине 2.7.1, Symfony 3.1.7
Что я делаю неправильно?