协会指的是不存在的所有方领域

时间:2017-02-27 22:27:08

标签: php symfony doctrine-orm sylius

我试图在Sylius(ShopUser和Taxon)中的两个现有实体之间添加多对多关系。我已经遵循了Doctrine文档,认为我已经正确设置了所有内容,但是我收到以下错误:

  

关联Sylius \ Component \ Core \ Model \ ShopUser#taxons指的是   拥有方字段Sylius \ Component \ Taxonomy \ Model \ Taxon#shop_users   哪个不存在。

以下是我设置的方法:

的src / Sylius /分量/分类/型号/ Taxon.php:

use Doctrine\Common\Collections\ArrayCollection;

class Taxon implements TaxonInterface {

    protected $shop_users;

    public function __construct() {
        $this->shop_users = new ArrayCollection();
    }

    public function getShopUsers() {
        return $this->shop_users;
    }

    public function addShopUser(ShopUser $user)
    {
        $user->addTaxon($this);
        $this->shop_users[] = $user;
    }

}

的src / Sylius /分量/核心/型号/ ShopUser.php:

namespace Sylius\Component\Core\Model;

use Doctrine\Common\Collections\ArrayCollection;

class ShopUser extends BaseUser implements ShopUserInterface {

    protected $taxons;

    public function __construct() {
        $this->taxons = new ArrayCollection();
    }

    public function addTaxon(Taxon $taxon) {
        $this->taxons[] = $taxon; // Add the taxon to our collection of taxons available for this shop user
    }


    public function getTaxons() {
        return $this->taxons;
    }

}

的src / Sylius /捆绑/ TaxonomyBundle /资源/配置/教义/模型/ Taxon.orm.xml:

<many-to-many field="shop_users" inversed-by="taxons" target-entity="Sylius\Component\Core\Model\ShopUser">
    <join-table name="sylius_taxon_shop_user">
        <join-columns>
            <join-column name="taxon_id" referenced-column-name="id" />
        </join-columns>
        <inverse-join-columns>
            <join-column name="shop_user_id" referenced-column-name="id" />
        </inverse-join-columns>
    </join-table>
</many-to-many>

的src / Sylius /捆绑/ CoreBundle /资源/配置/教义/模型/ ShopUser.orm.xml:

<many-to-many field="taxons" mapped-by="shop_users" target-entity="Sylius\Component\Taxonomy\Model\Taxon" />

我已经运行了迁移,并成功创建了表&#s; sylius_taxon_shop_user&#39;其中包含taxon_id和shop_user_id的列。

我已经对多对多关系做了一些阅读,但似乎无法弄清楚我为什么会收到错误。

修改

ShopUser模型过去常常在addTaxon代码中使用它,这会导致无限循环:

$taxon->addShopUser($this); // Add this user to the taxon, as well (inverse side)

我现在已将其删除,但仍会收到同样的错误。

第二次编辑

我要注意,在我的ShopUser.orm.xml中注释掉多对多标记时,错误会发生变化并指示另一方的映射也无效:

  

关联Sylius \ Component \ Core \ Model \ Taxon#shop_users引用   反面字段Sylius \ Component \ Core \ Model \ ShopUser#taxons   哪个不存在。

0 个答案:

没有答案