首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Doctrine with referencedColumnName

Doctrine with referencedColumnName
EN

Stack Overflow用户
提问于 2019-10-24 18:52:47
回答 1查看 390关注 0票数 0

我有两个具有多对多关系的模型。ID不是由规则管理的,而是由来自不同应用程序的GUID生成器管理的。因此,我的实体有一个名为uniqueIdentifier而不是id的字段。这样做:

代码语言:javascript
复制
class Bar {
    /**
    * @ManyToMany(targetEntity="Foo", mappedBy="bar")
    */
    private $foo;

}

class Foo {
    /**
    * @ManyToMany(targetEntity="Bar", mappedBy="foo")
    */
    private $bar;

}

我收到一个错误,说明Column name 'id' referenced for relation from App\Entity\Foo towards App\Entity\Bar does not exist。据我所知,这是由于默认的原理:将stuff映射到_id作为引用列名,将table1_table2映射到join表。

我不能覆盖默认值,因为有几个模型确实有自动生成的值,并且依赖于id字段。相反,我想做一些类似以下的事情:

代码语言:javascript
复制
class Bar {
    /**
    * @ManyToMany(targetEntity="Foo", mappedBy="bar")
    * @JoinColumn(name="foo_uid", referencedColumnName="uniqueIdentifier")
    */
    private $foo;

}

class Foo {
    /**
    * @ManyToMany(targetEntity="Bar", mappedBy="foo")
    * @JoinColumn(name="bar_uid", referencedColumnName="uniqueIdentifier")
    */
    private $bar;

}

这不起作用,我得到了同样的错误。怎么办?

EN

回答 1

Stack Overflow用户

发布于 2019-10-24 19:30:48

您的关联映射应该如下所示:

代码语言:javascript
复制
class Bar
{
    /**
     * @var Foo[]|\Doctrine\Common\Collections\Collection
     *
     * @ORM\ManyToMany(targetEntity="Foo", inversedBy="bar")
     * @ORM\JoinTable(
     *     name="table1_table2",
     *     joinColumns={
     *          @ORM\JoinColumn(name="foo_uid", referencedColumnName="uniqueIdentifier")
     *     },
     *     inverseJoinColumns={
     *          @ORM\JoinColumn(name="bar_uid", referencedColumnName="uniqueIdentifier")
     *     }
     * )
     */
    private $foo;
}

class Foo {
    /**
     * @var Bar[]|\Doctrine\Common\Collections\Collection 
     * 
     * @ORM\ManyToMany(targetEntity="Bar", mappedBy="foo")
     */
    private $bar;
}

请记住,foo_uidbar_uid列将位于table1_table2表中,uniqueIdentifier是Foo和Bar表中的标识符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58539784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档