10

如何在不知道参数名称的情况下访问 twig 模板中的路由参数?

4

3 回答 3

19

在 Twig 中可以通过以下方式访问路由参数:

{{ app.request.attributes }}

您还可以使用该dump()函数查看可用的方法:

<pre>
{{ dump(app.request.attributes) }}
</pre>

这是所有参数的转储:

请求网址

http://example.com/test/3

Route = test
Slug = {param1} = 3

树枝代码

{{ dump(app.request.attributes) }}

退货

object(Symfony\Component\HttpFoundation\ParameterBag)[10]
  protected 'parameters' => 
    array (size=3)
      '_controller' => string 'MyTest\Bundle\Controller\TestController::indexAction' (length=61)
      'param1' => string '3' (length=1)
      '_route' => string 'test' (length=7)
于 2013-01-07T14:04:32.010 回答
16

您可以通过以下方式获取所有路由参数:

{{ app.request.attributes.get('_route_params') }}

如果你只想要一个参数:

{{ app.request.attributes.get('_route_params')['YOUR_PARAMETER_KEY'] }}
于 2014-02-04T17:40:57.823 回答
1

如果您想使用当前路由及其参数作为 url:

{{ 路径(app.request.get('_route'),app.request.get('_route_params')) }}

当您想从 url 中删除任何连接的字符串时,这会很有帮助。

app.request.get('_route') gives you the route name from request bag.
app.request.get('_route_params') gives you the route parameters
{{ path(route_name, array of parameters) }} create the path
于 2019-05-08T07:38:10.943 回答