搜索并搜索了一些指导,但似乎无法正常工作。我不会访问任何索引控制器中的用户数据来保存重复代码。我创建了一个ACTION HELPER,它调用Session并返回用户数据。以下是我实现它的方式。调用帮助程序有效,但我无法在任何控制器中获取数据。
的application.ini
autoloaderNamespaces [] =“ZC”
bootstrap.php中
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;
}
}
IndexController.php
<?php
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
$this->_helper->user;
}
我对代码没有任何问题但是例如说如何从帮助程序中获取USERNAME或USERID ???
感谢您花时间看这个。
Ĵ
答案 0 :(得分:2)
首先,您的插件函数必须返回用户信息,而不是将其设置为类变量:
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()
您可能希望重命名其中一些函数和类。
答案 1 :(得分:0)
尝试在bootstrap路径中声明帮助程序...
Zend_Controller_Action_HelperBroker::addPath(
APPLICATION_PATH .'/controllers/helpers');
接下来使用谷歌这个简单的问题.... howto use helper in ZF