如何从twig扩展类获取路由

时间:2014-08-11 07:46:57

标签: symfony

class AdminExtension extends \Twig_Extension
{
   // content...
}

我通过添加添加新twig方法的类来扩展twig功能。在这个方法里面我想使用当前路线。我怎么能这样做?

我的意思是,例如,有:

www.someurl.com/prefix/controller1/aaa/bbb/ccc/ddd

我想让controller1/aaa/bbb/ccc/ddd成为我描述的函数内部的一部分。

谢谢!

1 个答案:

答案 0 :(得分:3)

您应该将扩展名注册为服务,然后在服务中注入request_stack(从Symfony 2.4开始):

my_extension:
    class: ...
    arguments: ["@request_stack"]
    tags: [{ name: twig.extension }]

然后,您可以使用RequestStack#getCurrentRequest()获取请求,然后您可以使用Request#getUri()获取当前网址。