【问题标题】:Symfony2 Project, Problems with template design using twigSymfony2 项目,使用 twig 进行模板设计的问题
【发布时间】:2015-03-20 07:11:24
【问题描述】:

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

--登录--注册--联系--

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

--您已注册为 Blablabla-- 编辑个人资料 -- 退出 --

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

【问题讨论】:

    标签: php html symfony templates twig


    【解决方案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。更多提示请参见oneofthemanyotherSOposts

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多