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