1

所以,我有以下实体结构:

/**
 * @ORM\Entity
 */
class Group
{
  /**
   * Many-To-Many, Unidirectional
   *
   * @var ArrayCollection $permissions
   *
   * @ORM\ManyToMany(targetEntity="Permission")
   * @ORM\JoinTable(name="group_has_permission",
   *      joinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")},
   *      inverseJoinColumns={@ORM\JoinColumn(name="permission_id", referencedColumnName="id")}
   * )
   */
  protected $permissions;

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

/**
 * @ORM\Entity
 */
class Permission {}

这只是一个例子,但我很困惑。我需要另一个可能称为“group_has_permission”的实体,它有两个字段:group_id 和 permission_id,对吗?还是我错了?

4

1 回答 1

3

您无需创建新实体。

Doctrine 将为您创建一个组表、一个权限表和一个连接表,以便将一个组链接到多个权限。这对你来说是透明的。

于 2012-07-05T19:58:20.320 回答