php – ZF2:在模板中添加一个Login小部件
我目前正在构建我的网站,而且我遇到了这个问题.
我想要一个带有侧栏和中间栏的布局. 在中间栏中,将有内容. 问题是:我不知道如何创建管理所有日志表单/欢迎消息的小部件/视图助手. 目前,我有一个专门用于登录的整个控制器,效果很好.但这不是我需要的:). 任何想法或简单的解释将不胜感激:p. 谢谢 ! 解决方法
好的,所以我找到了解决方案.我不知道它是不是最好的,但它确实有效.
我把它与我在网上找到的东西混合在一起. 如果您从未构建过身份验证服务,请查看本教程: 所以主要的解决方案是使用view-helper.所以在我们的布局中我们只需要调用类似的东西: $this->Login_widget(); 您必须创建自定义视图助手: namespace ApplicationViewHelper; use ZendViewHelperAbstractHelper; use ApplicationFormLoginForm; use ZendServiceManagerServiceManager; 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; } } 我需要在这个视图帮助器中获得两件事. >我的登录表单,以便在我的视图中显示它. 获取登录表单非常简单.只需加入它. public function getViewHelperConfig() { return array( 'factories' => array( 'Login_widget' => function ($helperPluginManager) { $serviceLocator = $helperPluginManager->getServiceLocator(); $viewHelper = new ViewHelperLoginhelper(); $viewHelper->setServiceLocator($serviceLocator); return $viewHelper; } ) ); } 使用此代码,您可以将serviceLocator提供给viewhelper. 您的查看帮助程序现在正在运行.您只需创建视图助手的内容即可. 如果使用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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |