0

有没有一种方法可以在 Zend 模块之间进行通信,如下所述?

我希望 $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";
    }
}
4

3 回答 3

0

你正在做的不是一个好习惯,但如果你仍然想让它工作,做回声而不是返回

class User_IndexController extends Zend_Controller_Action{
    public function loginAction(){
        echo "bla";
    }
}
于 2012-05-21T14:59:57.927 回答
0

一个选项是使用 Zend_Regsitry。在 loginAction() 你可以这样做:

Zend_Registry::set('bla', $aUserData['sVariable']);

为了取回它,你可以做到。

$registry = Zend_Registry::getInstance();
echo ($registry['sVariable']);

但它很乱。因此,我将控制器操作中的内容移至助手。这解决了我的问题。

于 2012-05-23T14:57:03.263 回答
0

跨模块控制器进行通信通常不是最佳实践。这个变量/逻辑可以移动到模型中吗?自动加载器使跨模块处理模型变得非常简单。

于 2012-05-21T19:57:45.550 回答