【问题标题】:I want to control with one Controller some other Controllers with their own models (not _forward)我想用一个控制器控制其他一些具有自己模型的控制器(不是_forward)
【发布时间】:2011-08-20 19:21:06
【问题描述】:

我是 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;
            ....
    ....
    }
}

将所有东西都放在一个控制器中我遇到了问题,因为每个控制器都有自己的模型,我认为这是错误的设计。 所以我想尝试从另一个类调用另一个函数。

我发现并非每个动作都需要视图...像这样:

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

问题是 _forward 只在当前函数之后调用该函数。有谁能够帮我?有没有机会,或者我必须把所有东西都放在一个控制器中?

希望并感谢您的帮助

最好的问候汤姆

【问题讨论】:

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


    【解决方案1】:

    ZF 并非设计为 HMVC 框架,但您可以实现这一点。一种方法可能是使用操作堆栈帮助程序/插件。查看文档:http://framework.zend.com/manual/en/zend.controller.actionhelpers.html

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

    【讨论】:

    • 感谢您的回答!我听说 Zend 不使用 hmvc 概念。这是我使用 Zend 框架时犯的一个大错误。我认为实现这一目标对于我的学士学位来说是错误的方式。我的论文的一部分是展示如何使用 zend 框架 (mvc)。所以我把所有东西都放在一个控制器中,它发生了:)谢谢!最好的问候汤姆
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 2014-01-26
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多