Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2:添加登录和注销选项html Symfony2_Php_Symfony_Twig_Templating_Authentication - Fatal编程技术网

Php Symfony2:添加登录和注销选项html Symfony2

Php Symfony2:添加登录和注销选项html Symfony2,php,symfony,twig,templating,authentication,Php,Symfony,Twig,Templating,Authentication,我用的是Symfony2。我有一个带有导航栏的主细枝模板,我想在其中有一个下拉菜单,根据用户是否登录,可以选择“登录”或“注销”。 实现这一目标的最佳方法是什么 -通过使用注销选项为/admin/*创建一个不同的静态主模板 -通过检查用户是否登录到路由系统调用的每个控制器中,然后在渲染时将要显示的正确信息传递给细枝模板 -通过从模板内部调用特定的控制器,如buildNavbarAuthOption() 在尝试使用MVC编程时,最后一个选项似乎不是最好的,对吗?只需在视图中使用: {% if is

我用的是Symfony2。我有一个带有导航栏的主细枝模板,我想在其中有一个下拉菜单,根据用户是否登录,可以选择“登录”或“注销”。 实现这一目标的最佳方法是什么

-通过使用注销选项为/admin/*创建一个不同的静态主模板

-通过检查用户是否登录到路由系统调用的每个控制器中,然后在渲染时将要显示的正确信息传递给细枝模板

-通过从模板内部调用特定的控制器,如buildNavbarAuthOption()

在尝试使用MVC编程时,最后一个选项似乎不是最好的,对吗?

只需在视图中使用:

{% if is_granted('IS_AUTHENTICATED_FULLY') %}
    <a href="{{ path('name_of_logout_path') }}">Logout</a>
{% else %}
    <a href="{{ path('name_of_login_path') }}">Login</a>
{% endif %}
{%if'is'u AUTHENTICATED'u FULLY'%}
{%else%}
{%endif%}

在主模板中,您可以测试变量app.user是否存在如下情况:

{% if app.user %}
    {# display logout #}
{% else %}
    {# display login #}
{% endif %}
或者更好的是,测试当前访问者是否具有最低安全角色:

{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}

做这件事可能有多种方法,但这一种方法既短又有效。