Doctrine orm 如何使用单独的链接表实现OneToMany关联?

Doctrine orm 如何使用单独的链接表实现OneToMany关联?,doctrine-orm,one-to-many,Doctrine Orm,One To Many,我正在现有数据库的基础上实现一个新的应用程序。移动应用程序正在使用现有数据库,由于移动应用程序由另一个团队开发,我不允许更改现有表的结构 现有数据库有一个用户表,对于我自己应用程序的用户,我创建了自己的表和称为PortalUser(Tableportal_user)的条令实体 PortalUser实体将有一个名为$children的OneToMany关联,它引用现有的用户实体。换句话说,每个PortalUser都有零个或多个子用户实体 实现这一点的最自然的方法是使用类似以下内容(简化): 用户(

我正在现有数据库的基础上实现一个新的应用程序。移动应用程序正在使用现有数据库,由于移动应用程序由另一个团队开发,我不允许更改现有表的结构

现有数据库有一个用户表,对于我自己应用程序的用户,我创建了自己的表和称为PortalUser(Tableportal_user)的条令实体

PortalUser实体将有一个名为$children的OneToMany关联,它引用现有的用户实体。换句话说,每个PortalUser都有零个或多个子用户实体

实现这一点的最自然的方法是使用类似以下内容(简化):

用户(现有实体):

PortalUser实体:

class PortalUser
{
    /**
     * @var  int
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var array
     * @ORM\OneToMany(targetEntity="User", mappedBy="parent")
     */
    protected $children;
}

这将在现有用户表中创建一个不允许的新列“parent_id”。那么,是否有可能获得一个单独的链接表,其中包含parent_id和child_id列,相当于一个常规的多个链接表?如果是这样的话,什么注释会产生这样的结构?

好吧,这很尴尬。事实证明它在条令文件中:

单向一对多关联可以通过连接映射 桌子从教义的角度来看,它只是简单地映射为 单向多对多,其中一个 联接列强制执行一对多基数

class PortalUser
{
    /**
     * @var  int
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var array
     * @ORM\OneToMany(targetEntity="User", mappedBy="parent")
     */
    protected $children;
}