我有一个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;
}
}
我尝试保留$this->offer
甚至$banner
,但没有任何变化,该行未从banner_offer
表中删除。
我在Doctrine 2.7.1,Symfony 3.1.7
我做错了什么?