2013-02-26 61 views
1

我使用的是树学说extenion创建菜单系统,我想创建一个枝条延伸到显示基于请求的父节点例如菜单{% display_menu(side_menu) %}。此功能将位于基本树枝模板中(即菜单位于网站的每个页面上)。Symfony2中使用实体管理器的树枝延伸内

因为我将存储菜单结构与Doctrine,我想我需要访问Twig扩展中的MenuRepository,所以我遇到的第一个问题是获得一个实体管理器。当寻找一个解决方案,一个fewpeople说,这是不好的做法,这是有意义的嫩枝扩展视图的一部分。

所以虽然有一个解决方案(链接到类似的问题)我的问题,我的问题是,有没有办法我可以使用做法呢?或者有没有更好的方式来做到这一点呢?

回答

2

制作实体知悉任何服务 - 包括实体管理器 - 是一个不好的做法。将EM注入到Twig扩展中没有任何问题。虽然,我宁愿将模型管理器注入到Twig扩展中,以便扩展不知道持久层 - 这是管理器层的工作。

所以,我不得不MenuManager这是了解repositores /实体管理器,并将它注入到一个扩展。

+0

谢谢你的建议。我将使用从[这里]接受的答案(http://stackoverflow.com/questions/8450465/fetching-data-through-a-custom-repository-in-a-twig-extension?rq=1)在此案件。 – Robin 2013-02-27 09:45:01