Symfony 2:在索引操作中渲染不同的视图

时间:2014-05-01 02:24:57

标签: php symfony

我是一个非常新的symfony2,(一个菜鸟)。
我使用的是当前版本的symfony,即2.4。我的目标是在索引操作中呈现不同的视图。要呈现的视图取决于用户是否已登录。

例如:

  1. 用户浏览http://example.com网址(未经过身份验证)。应用程序应该在此网址中显示登录表单,而不是重定向到http://example.com/login

  2. 用户浏览http://example.com网址(已通过身份验证)。由于用户已经过身份验证,因此应呈现帐户信息视图。

  3. 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

经过身份验证的用户具有“IS_AUTHENTICATED_FULLY”角色,因此您可以在控制器中进行检查

if ($this->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY')) {
  ...

但构建重型逻辑控制器并不是一个好主意。 Symfony可以使用正确的安全设置来完成所需的工作。

# app/config/security.yml
security:
    ...
    firewalls:
        secured_area:
            pattern: ^/
            security: true
            form_login:
                login_path:  /login
                check_path:  /login_check
            logout:
                path:   /logout
                target: /
            anonymous: ~

    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/ , roles: IS_AUTHENTICATED_FULLY }

您可以在文档http://symfony.com/doc/current/book/security.html

中找到详细信息