在Magento中,控制器通常做什么?
我见过一些控制器的基本示例,在它们的indexAction()方法中,它们执行类似于echo“这是一个索引操作”的操作。但在实际应用程序中,该方法是否会返回一个长字符串html,从在Magento中,控制器通常做什么?,magento,controller,Magento,Controller,我见过一些控制器的基本示例,在它们的indexAction()方法中,它们执行类似于echo“这是一个索引操作”的操作。但在实际应用程序中,该方法是否会返回一个长字符串html,从 谢谢。实际上,大多数控制器使用XML布局生成一系列应显示在页面上的逻辑块,然后递归呈现这些块以构建页面。请注意,它们实际上并不返回该字符串,布局类负责将输出放到正确的位置。这是您在这种情况下通常会看到的代码: $this->loadLayout(); $this->renderLayout(); 使用
谢谢。实际上,大多数控制器使用XML布局生成一系列应显示在页面上的逻辑块,然后递归呈现这些块以构建页面。请注意,它们实际上并不返回该字符串,布局类负责将输出放到正确的位置。这是您在这种情况下通常会看到的代码:
$this->loadLayout();
$this->renderLayout();
使用echo是一种快速的速记,它可以让开发人员暂时忽略整个布局系统,只关注触发正确的操作
希望能把事情弄清楚一点
谢谢,
Joe您看到的示例只是向您展示控制器中的代码正在执行。你在Magento控制器中应该做的是
$this->loadLayout();
$this->renderLayout();
这些是开始输出的行。无
echo
要求。感谢您的回答,一如既往的帮助。我发现这是一个程序员偏好的问题,模型操作应该在控制器还是块中执行。毫无疑问,访问控制和业务逻辑的执行属于控制器(IMHO),但加载、分页、排序、过滤模型数据等操作通常在块中执行。然而,这是一条灰色的线。你能把你的答案扩大到这条灰线吗?谢谢。你能解释一下调用loadLayout加载的是什么布局吗?有这么多的信息,但没有一个好的资源。自定义模块只能有一个布局,还是可以有多个布局?应该在哪里定义它/它们?我想是在config.xml中,但在adminhtml部分还是前端部分?布局文件在文件系统中位于何处?我一直在寻找一篇简洁的文章来解释这一点,但运气不好。@user我花了3年时间来解释这一点。从面向MVC开发人员的Magento开始。然后买这本书@Jonathan Magento Inc.自己在系统的不同区域处理灰线的方式不同,所以我不确定这里有多少经典的说法。制定自己的内部指导方针,遵循这些指导方针,并在发现什么对您和您的团队有效时重新考虑。