2012-04-23 59 views
0

時使用的服務,我有我的類MyTwigExtension擴展\ Twig_Extension,在那裏我有我的創建過濾器的樹枝。 我想在一個新的過濾器的方案中使用的服務。事情是這樣的:創建樹枝過濾器(控制器外)

$canView = $this->get('security_service') 
       ->hasClassPermission(
         'MyBundle:MyEntity', 
         $this->get('security.context')->getToken()->getUser(), 
         array(MaskBuilder::MASK_VIEW) 
       ); 

到控制器這項工作很好,但外界...

回答

0

檢查這個答案我介紹了依賴注入控制器here之外。

然後檢查此link以瞭解如何將您的TwigExtension註冊爲服務。

只是一個快速編輯,有時當你做TwigExtension作爲服務時,你不能直接注入某個服務,因爲它會導致ScopeWideningException。如果你得到這個例外,那麼你可以添加scope = request你服務定義。如果仍然拋出一個異常,注入全依賴容器和做$this->container->get('service.id.here')檢索您需要的服務。

希望它有幫助。

Regards,
Matt