我想用一个控制器控制一些其他控制器和他们自己的模型(不是_forward)

时间:2011-05-07 16:06:22

标签: php oop model-view-controller zend-framework zend-controller

我是zend框架的新手 这是我在互联网上提出的第一个问题...抱歉我的英语不好! 我有一个问题,在几个小时内我会跳出窗外;) 我有一个控制器A,然后我需要4个其他控制器(B,C,D,E)来调用他们的模型并给控制器答案A.控制器A将其发送到视图。

Zend_Framework遗憾地不允许这样的事情:

Class Arcticle_SteuerController {
    public function showAction() {
    .....
          $text = new Article_TextController();
          $opt = new Article_OptionController();
          $dates =  new Article_DatesController();

          $varText = $text->showTextAction();
          $varOpt = $opt->showOptAction();

          $this->view->varText;
          $this->view->varOpt;
            ....
    ....
    }
}

我把一切都放在一个Controller中有一个问题,因为每个Controller都有自己的模型,这是错误的设计我认为是这样。 所以我想尝试从另一个类调用另一个函数。

我找到了一些东西,并不是每个Action都需要一个视图......就像这样:

$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
$viewRenderer->setView($this->view)
             ->setNoController(true);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);

问题是_forward只在当前函数之后调用该函数。有谁能够帮我?有机会,还是我必须将所有内容放在一个控制器中?

希望并感谢您的帮助

最好的问候汤姆

1 个答案:

答案 0 :(得分:0)

ZF并非设计为HMVC框架,但您可以将其解除。一种方法可能是使用动作堆栈助手/插件。查看文档:{​​{3}}

您应该可以从这些控制器的视图中获取html。但是,如果整体用于模拟HMVC,我不确定这种方法的可扩展性。