3

次のようにマップされたエンティティ「User」と「Role」の間に多対多の関係を持つスキーマがあります。

役割エンティティ

/**
 * @ORM\ManyToMany(targetEntity="User", mappedBy="roles", cascade={"persist", "remove"})
 */
protected $users;

およびユーザーエンティティ

/**
 * @ORM\ManyToMany(targetEntity="Role", inversedBy="users", cascade={"persist", "remove"})
 * @ORM\JoinTable(name="users_roles")
 * 
 * @var ArrayCollection $userRoles
 */
protected $userRoles;

次のコードでロールオブジェクトを削除しようとすると、

$role = $em->getRepository('ACMEDefaultBundle:Role')->find($id);
$em->remove($role);
$em->flush();

教義の例外が発生しています

ErrorException:注意:未定義のインデックス:/ media / sf_sandbox / aalcodev / vendor / doctrineの/media/sf_sandbox/aalcodev/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php行964(キャッチされない例外)のロール/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php行964

助けてください。ありがとうございました。

4

1 に答える 1

3

mappedBy="roles"に変更する必要がありますmappedBy="userRoles"。「Mapped by」は、反対側のプロパティ名を指す必要があります...

于 2012-10-18T13:50:07.933 に答える