php – ZF2:在模板中添加一个Login小部件

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。