Symfony2 + Twig获得真实/全电流路线

ins*_*ere 4 routes symfony twig

我有一个带可选参数的路由:

/**
  * @Route( "/route/{id}", name="_route", defaults={"id" = ""} )
  * @Template()
  */ 
Run Code Online (Sandbox Code Playgroud)

在模板中我有一个表单,我希望将表单发送到:

/route
Run Code Online (Sandbox Code Playgroud)

要么:

/route/10
/route/10/mail – if there were more than just one parameter
Run Code Online (Sandbox Code Playgroud)

目前我正在解决这个问题:

{{ path(app.request.attributes.get('_route')) }}/{{ object.id }}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但我必须自己添加所有可能的参数.有没有办法从树枝内获得完整的当前路径?我不想在我的控制器中添加额外的变量来发送到模板.

Mae*_*lyn 17

这个Request班有一个getRequestUri()方法.你可以像树枝一样访问它

{{ app.request.requesturi }}
Run Code Online (Sandbox Code Playgroud)


Den*_*s V 6

还有一种方法(不确定它是否是一种好的做法):

{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以添加一个额外的参数:

{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge({'p': 10})) }}
Run Code Online (Sandbox Code Playgroud)