在Magento,控制器通常做什么?

时间:2011-04-26 19:03:28

标签: magento controller

我已经看到了控制器的一些基本示例,在它们的indexAction()方法中,它们执行类似echo'这是一个索引操作'。但在实际应用程序中,该方法是否会返回一长串html,以< html>开头?

感谢。

2 个答案:

答案 0 :(得分:2)

实际上,大多数控制器使用XML布局来生成应在页面上显示的一系列逻辑块,然后递归渲染这些块以构建页面。请注意,它们实际上并不返回该字符串,布局类负责将输出输出到正确的位置。这是您在这种情况下通常会看到的代码:

$this->loadLayout();
$this->renderLayout(); 

使用echo是一种快速简写,可让开发人员暂时忽略整个布局系统,只关注触发正确的操作。

希望能稍微清理一下!

谢谢, 乔

答案 1 :(得分:1)

您看到的示例只是向您展示控制器中的代码正在执行。你应该在Magento控制器中做什么

  1. 根据请求中的值操作模型(获取,发布等)

  2. 告诉Magento加载并呈现构成响应的布局

  3. 布局/块系统直接从系统模型类中读取,因此不需要在控制器中执行任何相关的输出(这不是100%真实,但如果你知道它不是100%真的原因你没有需要在答案中读到这一点)

    如果你看一下Magento核心控制器,你的大多数都会以

    结束
    $this->loadLayout();
    $this->renderLayout(); 
    

    这些是开始输出的行。不需要echo