2012-10-18 65 views
3

我有一個架構,如下所示映射實體「用戶」和「角色」之間的多對多關係。刪除EntityManager多對多關係的對象部分返回錯誤

角色實體

/** 
* @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/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php中的角色第964行(未捕獲的異常)在/ media/sf_sandbox/aalcodev/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 964

請幫忙。謝謝。

+0

請不要在標題中使用這些詞語:'問題'。請參閱[編寫優秀標題](http://meta.stackexchange.com/questions/10647/writing-good-titles/10648#10648) – hakre

+0

哪部分錯誤信息很難理解?索引在哪裏被稱爲角色? – hakre

+0

@hakre對不起。第一次發佈在這裏,謝謝你的鏈接。我沒有索引「角色」。當我運行'schema:update'時,我得到了三個表 - 用戶,角色和users_roles。我可以使用EntityManager添加和更新'角色',我嘗試刪除時收到錯誤。我錯過了什麼嗎? –

回答

3

您應該將mappedBy="roles"更改爲mappedBy="userRoles"。 「映射」應指向其他方的屬性名稱...

+0

這樣做了,謝謝。 –