我想得到这样的东西(这是来自控制器)
$authService = $this->serviceLocator->get('auth_service');
if ($authService->hasIdentity()) {
[...]
} else {
[...]
}
在视图文件(* .phtml)中我可以显示登录或注销链接...
答案 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文件中的配置闭包完成的。