1

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

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

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

4

2 回答 2

2

框架中已经有一个identity()视图助手,要使用它,您需要将您的 auth 服务实例映射到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; ?>
于 2013-06-09T20:12:06.630 回答
1

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

于 2013-06-09T18:24:49.133 回答