如何在不知道参数名称的情况下访问 twig 模板中的路由参数?
问问题
29390 次
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 回答