我已经看到了控制器的一些基本示例,在它们的indexAction()方法中,它们执行类似echo'这是一个索引操作'。但在实际应用程序中,该方法是否会返回一长串html,以< html>开头?
感谢。
答案 0 :(得分:2)
实际上,大多数控制器使用XML布局来生成应在页面上显示的一系列逻辑块,然后递归渲染这些块以构建页面。请注意,它们实际上并不返回该字符串,布局类负责将输出输出到正确的位置。这是您在这种情况下通常会看到的代码:
$this->loadLayout();
$this->renderLayout();
使用echo是一种快速简写,可让开发人员暂时忽略整个布局系统,只关注触发正确的操作。
希望能稍微清理一下!
谢谢, 乔
答案 1 :(得分:1)
您看到的示例只是向您展示控制器中的代码正在执行。你应该在Magento控制器中做什么
根据请求中的值操作模型(获取,发布等)
告诉Magento加载并呈现构成响应的布局
布局/块系统直接从系统模型类中读取,因此不需要在控制器中执行任何相关的输出(这不是100%真实,但如果你知道它不是100%真的原因你没有需要在答案中读到这一点)
如果你看一下Magento核心控制器,你的大多数都会以
结束$this->loadLayout();
$this->renderLayout();
这些是开始输出的行。不需要echo
。