如何从Zend中的另一个模块调用controller::action。
目录树
-modules
--auth
---controllers
--crm
--default
---controllers我如何做这样的事情:
/* module\default\controller */
public function indexAction(){
$something = \model\auth\IndexController::doSomething();
}更新:
我知道这样的事情可以通过模块化扩展see here在CodeIgniter中实现
$out = modules::run('module/controller/method', $param1, ....);发布于 2012-01-20 22:18:29
据我所知,唯一能实现这一功能的就是ActionStack助手:
ZF Action stack helper
控制器实际上并不打算以与大多数其他方法相同的方式调用。
发布于 2012-01-27 08:15:13
如果你需要调用另一个动作,而不是继续你的程序流,那么就像RockyFord说的那样有问题。
考虑到您关于部分检索信息来构建小部件的解释,我将在库中创建一个帮助器,以便可以从任何地方调用它,例如:
-lib
--MyLib
---Controller
----Action
-----Helper
------ Foo.phpFoo操作帮助器可以是:
class MyLib_Controller_Action_Helper_Foo extends Zend_Controller_Action_Helper_Abstract {
public setBar() {
// some code here
}
public getBar() {
// some code here for retrieving the partial
}
}然后从另一个控制器操作或甚至另一个lib函数调用它。
// in a controller action
...
$foo = new MyLib_Controller_Action_Helper_Foo();
$foo->setBar();
$bar = $foo->getBar();
$this->view->bar = $bar;
...希望这能有所帮助
纳马斯特!!
发布于 2012-01-24 01:43:31
如果你想这样做,可能是你的设计出了问题。尝试将所需的功能移至第三个类,例如移至action helper,并从两个控制器调用它。也就是说,应该可以这样做
$a = new A_Controller();
$a->aAction();或
A_Controller::aAction();如果aAction被声明为static。(不过,我两个都没试过。)
https://stackoverflow.com/questions/8942407
复制相似问题