使用render在symfony2.3上创建菜单

时间:2014-03-12 19:00:53

标签: symfony twig

在我的管理员模板上我使用了渲染功能来添加菜单。

控制器侧栏添加来自db。

的所有链接

当我想添加"当前"时会出现问题。 class因为我无法从渲染请求中访问当前的url / controller。

{{ render(controller('AdminDashboardBundle:Template:sidebar')) }}

如何从渲染控制器访问所有信息(不传递var)?

由于

1 个答案:

答案 0 :(得分:1)

RequestStack服务已使用Symfony 2.4构建。如果将模板控制器声明为服务并注入RequestStack,则可以在不传递参数的情况下使用当前的render调用。

但是你在谈论Symfony 2.3,不幸的是我认为没有论据可以做你想要的事情。下面是一些关于如何将当前路由/ URL作为控制器参数传递的示例。

1)传递网址:

{{ 
   render(controller('AdminDashboardBundle:Template:sidebar', {
      'url': app.request.requesturi 
   })) 
}}

2)通过路线:

{{ 
   render(controller('AdminDashboardBundle:Template:sidebar', {
      'route': app.request.attributes.get('_route'),
      'route_params': app.request.attributes.get('_route_params')
   }))
}}

我知道你想使用Symfony2.3这个电话而不通过vars,我认为由于工作方式scopes而根本不可能。