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_idとpermission_idの2つのフィールドを持つ「group_has_permission」という別のエンティティが必要ですよね?または私は間違っていますか?

4

1 に答える 1

3

新しいエンティティを作成する必要はありません。

Doctrine は、グループを複数のパーミッションにリンクするために、グループ テーブル、パーミッション テーブル、結合テーブルを作成します。これは透過的です。

于 2012-07-05T19:58:20.320 に答える