Doctrine / Symfony 2中的单向多对多行为和所需实体

时间:2012-07-05 19:19:18

标签: symfony doctrine-orm

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

/**
 * @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,对吗?或者我错了吗?

1 个答案:

答案 0 :(得分:3)

您不需要创建新实体。

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