Symfony2项目,使用树枝模板设计的问题

时间:2015-01-21 17:00:06

标签: php html symfony templates twig

我对使用twig的模板有疑问,我的问题如下,我有一个名为index.html.twig的页面,它从base.html.twig扩展而来。 在index.html.twig中有两个包含块,(一个用于上部菜单栏;一个用于导航栏,另一个用于页脚) 我的导航栏包含匿名用户的以下选项

- 登录 - 注册 - 联系 -

现在,如果我登录,我想加载一个不同的导航栏而不是前一个导航栏,例如

- 您已签署为Blablabla--编辑个人资料 - 退出 -

我怎样才能做到这一点?我的意思是,根据会话包含不同的块。 如果用户已登录,是否必须检查视图? 或者,如果用户有会话,我必须检入控制器,然后加载不同的index.html.twig(一个用于登录用户。) 关于最后一个选项,我可以创建一个index.html.twig和一个indexLoggedIn.html.twig,并且在控制器中我可以检查,如果用户登录我渲染indexLoggedIn,否则我加载index.html。枝条。 我使用FOSUserBundle进行用户管理。 谢谢!

1 个答案:

答案 0 :(得分:1)

你可以这样做:

{% if app.user and is_granted("IS_AUTHENTICATED_REMEMBERED") %}
  {{ include('FooBarBundle:Navbar:authenticated.html.twig') }}
{% else %}
  {{ include('FooBarBundle:Navbar:anonymous.html.twig') }}
{% endif %}

请参阅documentation,了解何时检查IS_AUTHENTICATED_REMEMBERED以及何时使用IS_AUTHENTICATED_FULLY。有关更多提示,请参阅one of the many other SO posts