学说:不能从关系的反面移除元素

时间:2016-12-09 10:38:25

标签: doctrine-orm doctrine symfony

我有一个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: enter image description here

我尝试保留$this->offer甚至$banner,但没有任何变化,该行未从banner_offer表中删除。

我在Doctrine 2.7.1,Symfony 3.1.7

我做错了什么?

0 个答案:

没有答案