zend framework里在某个控制器的某个action中怎么调用其他控制器的某个方法?
发布网友
发布时间:2022-04-12 09:49
我来回答
共3个回答
热心网友
时间:2022-04-12 11:19
一个很简单解决办法就是引用这个controller,然后使用
$c = new ControllerName($this->getRequest(), $this->getResponse());
然后$c->functionName()就行了。
但是,对于action使用actionStack更好,不是action的话,亲,我建议你把它移到M层中。
热心网友
时间:2022-04-12 12:37
1、如果IndexController这一个类有调用的话,并且m1是独立方法可以使用 IndexController::m1();
2、改成继承:
class NewsController extends IndexController { //这里可以改成继承IndexController 这一个类
function indexAction(){
$m1 = $this->m1;//跟调用本类方法一样,因为是继承了类
$this->view->m1 = $m1;
}
}
3、global
class IndexController extends Zend_Controller_Action{
function indexAction(){
global $abc;
$abc = &$this;//这里用引用,不是复制,所以不会很消耗资源
}
}
class NewsController extends Zend_Controller_Action{
function indexAction() {
global $abc;
$m1 =$abc->m1;//这里
$this->view->m1 = $m1;
}
}