有没有办法在Zend Modules之间进行通信,如下所述?
我希望$ sVariable返回“bla”。但它给了我
Zend_Controller_Action_Helper_ActionStack Object.
在一个模块中调用:
$sVariable = $this->_helper->actionStack('login', 'index', 'user');
echo $sVariable;
在另一个模块中:
class User_IndexController extends Zend_Controller_Action
{
public function loginAction()
{
return "bla";
}
}
答案 0 :(得分:0)
你在做什么不是一个好习惯,但如果你仍然想让它工作,那么回声而不是回归
class User_IndexController extends Zend_Controller_Action{
public function loginAction(){
echo "bla";
}
}
答案 1 :(得分:0)
跨模块控制器进行通信通常不是最佳做法。这个变量/逻辑可以移动到模型中吗?自动加载器使模块间的模型变得非常简单。
答案 2 :(得分:0)
一个选项是使用Zend_Regsitry。在loginAction()中你可以这样做:
Zend_Registry::set('bla', $aUserData['sVariable']);
为了得到它,你可以做到。
$registry = Zend_Registry::getInstance();
echo ($registry['sVariable']);
但它很混乱。所以我将控制器动作中的内容移动到帮助器中。这解决了我的问题。