我正在使用Silex,需要根据其加载的位置更改Twig文件。
我的第一个想法是检查网址,但不幸的是,这会返回呈现的Twig位置的位置,而不是预期的父网址。
{{ path(app.request.attributes.get('_route')) }}
另一种尝试是通过渲染传递一些变量,但是我不确定如何在Twig中执行此操作(如果可能的话)。
{{ render(path('cart')) }}
有人可以帮我解决问题吗?
提前致谢
答案 0 :(得分:2)
这确实是silex核心的一个问题。我已经提交了一个pull request,它引入了一个新的renderRoute
twig函数来解决这个问题。希望很快就能合并。
答案 1 :(得分:0)
嗯,我没有完全满足你的要求,但是如果你想在render方法中传递变量,你可以这样做:
{% render "ProjectTesteBundle::ControllerName::actionName" with { 'variableNameToPass' : variableValue } %}
如果你想在twig模板中获取路由名称,你可以这样做:
{% set routeName = app.request.attributes.get('_route') %}