Zend framework Zend访问所有控制器中的用户数据
找了又找,找了又找,但似乎什么都没找到。我不会访问任何索引控制器中的用户数据来保存重复代码。我创建了一个动作助手,它调用会话并返回用户数据。下面是我如何实现这一切的。调用助手可以工作,但我无法在任何控制器中获取数据 Application.ini 自动加载命名空间[]=“ZC” Bootstrap.phpZend framework Zend访问所有控制器中的用户数据,zend-framework,session,action,helper,Zend Framework,Session,Action,Helper,找了又找,找了又找,但似乎什么都没找到。我不会访问任何索引控制器中的用户数据来保存重复代码。我创建了一个动作助手,它调用会话并返回用户数据。下面是我如何实现这一切的。调用助手可以工作,但我无法在任何控制器中获取数据 Application.ini 自动加载命名空间[]=“ZC” Bootstrap.php protected function _initActionHelpers() { Zend_controller_Action_HelperBroker::addHelper(new ZC_
protected function _initActionHelpers()
{
Zend_controller_Action_HelperBroker::addHelper(new ZC_Action_Helpers_User());
}
User.php
<?php
Class ZC_Action_Helpers_User extends Zend_Controller_Action_Helper_Abstract
{
public function direct()
{
$storage = new Zend_Auth_Storage_Session();
$data = $storage->read();
$this->_user = $data;
}
}
尝试在引导路径中声明帮助程序
Zend_Controller_Action_HelperBroker::addPath(
APPLICATION_PATH .'/controllers/helpers');
接下来用谷歌来回答这个简单的问题 首先,插件函数必须返回用户信息,而不是将其设置为类变量:
然后,您可以在任何需要的控制器中使用该插件:
$user = $this->_helper->User->Direct()
您可能需要重命名其中一些函数和类。Hi derhaa,助手路径已添加到应用程序中。iniautoloaderNamespaces[]=“ZC”这将检测助手的路径。Hi我在IndexContorToller中执行了上述操作,但在打印时($user)它什么也不做数据似乎没有输出?抱歉Aporat返回了$data!!!!再次感谢,所以当我做$this->_user=$data时,它设置为类变量,这意味着什么?
Class ZC_Action_Helpers_User extends Zend_Controller_Action_Helper_Abstract
{
public function direct()
{
$storage = new Zend_Auth_Storage_Session();
$data = $storage->read();
return $data;
}
}
$user = $this->_helper->User->Direct()