我想得到这样的东西(这是来自控制器)
$authService = $this->serviceLocator->get('auth_service');
if ($authService->hasIdentity()) {
[...]
} else {
[...]
}
在视图文件 (*.phtml) 中,我可以显示登录或注销链接...
我想得到这样的东西(这是来自控制器)
$authService = $this->serviceLocator->get('auth_service');
if ($authService->hasIdentity()) {
[...]
} else {
[...]
}
在视图文件 (*.phtml) 中,我可以显示登录或注销链接...
框架中已经有一个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; ?>
您需要创建一个自定义View Helper以将 AuthService 中的方法公开给视图。例如,看看ZfcUser创建视图助手的方式。但是,我要指出的是,他们将 AuthenticationService 注入到视图助手中。这是通过Module.php文件中的配置闭包完成的。