Доктрина: нельзя удалить элемент с обратной стороны отношения

У меня есть отношение 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

Что я делаю неправильно?

0 ответов

Другие вопросы по тегам