Php symfony学说中的多种关系

Php symfony学说中的多种关系,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我有一个代理实体 带着一把刀 看起来像 /** *@ORM\ManyToManytargetEntity=AppBundle\Entity\ShipType,inversedBy=owners */ 受保护的美元拥有 检查代理类的构造函数。确保它具有以下功能: $this->owns = new ArrayCollection(); 然后,确保您有一个addOwns方法: 也是一个二传手: public function setOwns($owns) { if ($owns i

我有一个代理实体 带着一把刀

看起来像

/** *@ORM\ManyToManytargetEntity=AppBundle\Entity\ShipType,inversedBy=owners */
受保护的美元拥有 检查代理类的构造函数。确保它具有以下功能:

$this->owns = new ArrayCollection();
然后,确保您有一个addOwns方法:

也是一个二传手:

public function setOwns($owns)
{
    if ($owns instanceof ArrayCollection) {
        $this->owns = $owns;
    } else {
        if (!$this->owns->contains($owns)) {
            $this->owns[] = $owns;
        }
        $this->owns;
    }
    return $this;
}
另外,请确保您拥有具有默认内容的getter。这样就可以了


PS:你不应该用动词来命名你的属性,但那是另一回事。

不客气。我更新了我的答案,因为前者有一些逻辑错误。无法对ArrayCollection调用is_数组方法。很抱歉
public function setOwns($owns)
{
    if ($owns instanceof ArrayCollection) {
        $this->owns = $owns;
    } else {
        if (!$this->owns->contains($owns)) {
            $this->owns[] = $owns;
        }
        $this->owns;
    }
    return $this;
}