2012-01-18 97 views
2

Doctrine 2中的事件監聽器非常有用。我可以使用它們有效地實現ACL實體的創建,更新和刪除。但是,我無法找到加載實體的方法。Doctrine 2 - 基於ACL的過濾器加載實體

postLoad事件在實體加載後觸發,我可以在事件監聽器中檢查ACL,但是我該怎麼辦?我想靜靜地從結果集中刪除ACL拒絕的實體,以便只返回用戶有權查看的實體。

在聽衆中,我試過$entity = nullunset($entity),但他們都不工作,因爲UOW仍然有一個引用。我可以使用$entitymanager->detatch($entity),但只能將其從實體管理器中刪除,而不是銷燬實體。

那麼,有沒有什麼辦法來做我想要的東西?也許有不同的道路?

回答