Symfony2 项目,使用 twig 进行模板设计的问题
Symfony2 Project, Problems with template design using twig
我对使用 twig 的模板有疑问,我的问题如下,我有一个名为 index.html.twig 的页面,它扩展自 base.html.twig。
在 index.html.twig 中有两个包含块,(一个用于上部菜单栏;一个导航栏,另一个对应于页脚)
我的导航栏包含以下供匿名用户使用的选项,
--登录--注册--联系--
现在,如果我登录,我想加载一个不同的导航栏而不是以前的导航栏,例如
--您已注册为 Blablabla-- 编辑个人资料 -- 退出 --
我怎样才能做到这一点?我的意思是,根据会话包含不同的块。
如果用户已登录,我是否必须签入视图?
或者,如果用户有会话,我是否必须检查控制器,然后加载不同的 index.html.twig(一个用于登录用户。)
关于最后一个选项,我可以创建一个 index.html.twig 和一个 indexLoggedIn.html.twig,并且在控制器中我可以检查,如果用户已登录我呈现 indexLoggedIn,否则我加载 index.html.twig.
我使用 FOSUserBundle 进行用户管理。
谢谢!
你可以这样做:
{% if app.user and is_granted("IS_AUTHENTICATED_REMEMBERED") %}
{{ include('FooBarBundle:Navbar:authenticated.html.twig') }}
{% else %}
{{ include('FooBarBundle:Navbar:anonymous.html.twig') }}
{% endif %}
有关更多提示,请参阅 documentation about when to check for IS_AUTHENTICATED_REMEMBERED
and when to use IS_AUTHENTICATED_FULLY
. And see one of the many other SO posts。
我对使用 twig 的模板有疑问,我的问题如下,我有一个名为 index.html.twig 的页面,它扩展自 base.html.twig。 在 index.html.twig 中有两个包含块,(一个用于上部菜单栏;一个导航栏,另一个对应于页脚) 我的导航栏包含以下供匿名用户使用的选项,
--登录--注册--联系--
现在,如果我登录,我想加载一个不同的导航栏而不是以前的导航栏,例如
--您已注册为 Blablabla-- 编辑个人资料 -- 退出 --
我怎样才能做到这一点?我的意思是,根据会话包含不同的块。 如果用户已登录,我是否必须签入视图? 或者,如果用户有会话,我是否必须检查控制器,然后加载不同的 index.html.twig(一个用于登录用户。) 关于最后一个选项,我可以创建一个 index.html.twig 和一个 indexLoggedIn.html.twig,并且在控制器中我可以检查,如果用户已登录我呈现 indexLoggedIn,否则我加载 index.html.twig. 我使用 FOSUserBundle 进行用户管理。 谢谢!
你可以这样做:
{% if app.user and is_granted("IS_AUTHENTICATED_REMEMBERED") %}
{{ include('FooBarBundle:Navbar:authenticated.html.twig') }}
{% else %}
{{ include('FooBarBundle:Navbar:anonymous.html.twig') }}
{% endif %}
有关更多提示,请参阅 documentation about when to check for IS_AUTHENTICATED_REMEMBERED
and when to use IS_AUTHENTICATED_FULLY
. And see one of the many other SO posts。