2013-04-05 136 views
-1

我对ZF2相当陌生,我试图找到一种简单的方法来允许登录链接隐藏在用户已经查看的视图中登录并在用户注销时再次显示。我看了ZF2的ACL示例,但我仍然有点困惑,我不确定这是否实际上是实现这样一个简单事情所需要的。Zend Framework 2 - 登录时隐藏登录链接,反之亦然登出

如果有人可以分享一些关于这是如何完成的知识,我会永远是伟大的。谢谢

+0

很多人的信息缺失。你用什么进行身份验证,自制? ZfcUser? - 你如何渲染登录链接? Zend的\导航?简单的Html? – Sam 2013-04-05 16:35:47

+0

对不起,山姆,我只是想我的头ZF2的方式,所以我使用自制身份验证和简单的HTML导航。但是,我已经看过ZF2导航,并且可以轻松实现。谢谢 – 2013-04-05 16:46:22

+0

那么如果你有自己的认证,你应该有一个认证服务。然后你会建立一个可以访问服务的视图助手。然后像'if($ this-> myAuthService() - > isLogin()){echoNavigation(); }' – Sam 2013-04-05 17:00:32

回答

2

标准Identity view helper,可以帮助你与此。这将工作开箱,如果你在你的模块config/module.config.php添加您的身份验证服务到服务管理,比如像这样:

/* Some configuration omitted */ 

return array(
    'service_manager' => array(
     'Zend\Authentication\AuthenticationService' => function($sm) { 
      $authService = new \Zend\Authentication\AuthenticationService(); 
      $authService->setStorage(new \Zend\Authentication\Storage\Session('user', 'details')); 

      return $authService; 
     }, 
    ), 
); 

然后你就可以像这样在你的视图脚本:

if ($this->identity() == null) { 
    // User is not logged in; show login link here 
} 

else { 
    // User is logged in; show profile link here or do nothing 
} 
+0

谢谢你的解决方案。完美的作品! – 2013-04-07 00:47:54