ViewFile中提供ZendFramework 2 AuthService

时间:2013-06-09 18:08:02

标签: view zend-framework2

我想得到这样的东西(这是来自控制器)

$authService = $this->serviceLocator->get('auth_service');
if ($authService->hasIdentity()) {
    [...]
} else {
    [...]
}

在视图文件(* .phtml)中我可以显示登录或注销链接...

2 个答案:

答案 0 :(得分:2)

框架中已经有一个identity()视图帮助器,要使用它,您需要将您的身份验证服务实例映射到Zend\Authentication\AuthenticationService,您可以通过将其别名化到auth_service来实现在你的module.config.php中,例如......

<?php
return array(
    //..
    'service_manager' => array(
        'aliases' => array(
            'Zend\Authentication\AuthenticationService' => 'auth_service',
        ),
    ),
    // ..
);

帮助器没有参数,它只返回标识或null,所以对于测试的例子,如果用户经过身份验证,在您的视图中,您将使用...

<?php
if ($this->identity()) : ?>
    Logged In User
<?php else : ?>
    Guest
<?php endif; ?>

答案 1 :(得分:1)

您需要创建自定义View Helper以将方法从AuthService公开到视图。举个例子,看看ZfcUser创建视图助手的方式。但是,我会指出他们将AuthenticationService注入到视图助手中。这是通过Module.php文件中的配置闭包完成的。