脚本宝典收集整理的这篇文章主要介绍了php – ZF2:在模板中添加一个Login小部件,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要一个带有侧栏和中间栏的布局.
在中间栏中,将有内容.
在侧栏中,将有登录表单,如果已经记录,则为“欢迎XXX”.这样您就可以登录每一页.
问题是:我不知道如何创建管理所有日志表单/欢迎消息的小部件/视图助手.
目前,我有一个专门用于登录的整个控制器,效果很好.但这不是我需要的:).
任何想法或简单的解释将不胜感激:p.
谢谢 !
如果您从未构建过身份验证服务,请查看本教程:
http://samsonasik.wordpress.com/2012/10/23/zend-framework-2-create-login-authentication-using-authenticationservice-with-rememberme/
所以主要的解决方案是使用view-helPEr.所以在我们的布局中我们只需要调用类似的东西:
$this->Login_widget();
您必须创建自定义视图助手:
namespace Application\View\Helper; use Zend\View\Helper\AbstractHelper; use Application\Form\LOGinForm; use Zend\ServiceManager\ServiceManager; class Loginhelper extends AbstractHelper{ PRotected $serviceLocator; protected $authService; public function __invoke(){ $this->authService = $this->serviceLocator->get('AuthService'); if($this->authService->hasIdentITy()){ return $this->getView()->render('partial/login',array('getIdentity' => $this->authService->getIdentity())); } else{ $form=new LoginForm(); return $this->getView()->render('partial/login',array('form' => $form)); } } public function setServiceLocator(ServiceManager $serviceLocator){ $this->serviceLocator = $serviceLocator; } }
我需要在这个视图帮助器中获得两件事.
>我的登录表单,以便在我的视图中显示它.
> ServiceManager(或ServiceLocator),用于获取我的身份验证服务(称为AuthService).
获取登录表单非常简单.只需加入它.
在Module.PHP中完成您的服务.
public function getViewHelperConfig() { return array( 'factories' => array( 'Login_widget' => function ($helperPluginManager) { $serviceLocator = $helperPluginManager->getServiceLocator(); $viewHelper = new View\Helper\Loginhelper(); $viewHelper->setServiceLocator($serviceLocator); return $viewHelper; } ) );
}
使用此代码,您可以将serviceLocator提供给viewhelper.
现在,您可以在viewhelper中检索您的服务.同样,我不太确定它是否是最佳解决方案,但它确实有效.
您的查看帮助程序现在正在运行.您只需创建视图助手的内容即可.
您可以返回部分(如我所做),或返回HTML代码(适用于小事).
如果使用partials,请不要忘记在module.config.PHP中声明它们.
就我而言,我测试用户是否已登录.如果他是,我打印像“欢迎家伙”,如果没有,我将表格对象传递给我的部分,并在我的视图中显示.整个身份验证过程在指定的控制器中完成.
现在,在您的布局中,您只需要调用viewhelper.
<div class="container"> <div id="The_login_widget_div"> <?PHP echo $this->Login_helper(); ?> </div> <div id="main_content_div"> <?PHP echo $this->content; ?> </div> </div>
就是这样.我希望它有所帮助.顺便说一下,这是ZF 2.2
以上是脚本宝典为你收集整理的php – ZF2:在模板中添加一个Login小部件全部内容,希望文章能够帮你解决php – ZF2:在模板中添加一个Login小部件所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。