我创建了一个Magento模块。它工作得很好。但我的问题是我想创建一个包含多个首页的模块,如:
Page 1:
www.magento.com/part/
Page 2:
www.magento.com/part/view/
在我的部分页面中有一个表单,当我提交此表单时,它会重定向到查看页面,我想显示部分页面中的任何数据。
以下是我的目录结构:
app\code\local\HK\Part\Block
app\code\local\HK\Part\controllers
app\code\local\HK\Part\etc
app\code\local\HK\Part\Helper
app\code\local\HK\Part\Model
app\code\local\HK\Part\sql
app\design\frontend\default\default\layout
app\design\frontend\default\default\template
app\etc\modules
我怎样才能实现这个目标?
答案 0 :(得分:0)
假设您已正确设置路由器,则只需在控制器中添加其他操作即可。在您的情况下,viewAction
PartController.php
答案 1 :(得分:0)
基本的Magento URL结构可以按如下方式细分:
<base url>/<module front-name>/<controller>/<action>/<any other params, optional>
所以,从提供的URL结构
base url = http://www.magento.com/
module front name = part
controller = view
action = index (as its the default value, when no action name is provided)
模块前端名称在模块的config.xml
文件中定义,如下所示:
<frontend>
<routers>
<namespace_custom_module_name>
<use>standard</use>
<args>
<module>Namespace_Custommodule</module>
<frontName>custom_frontname</frontName>
</args>
</namespace_custom_module_name>
</routers>
</frontend>
将custom_frontname
标记内的frontName
替换为part
,这样可以正确设置路由器。
根据第一个示例http://www.magento.com/part/
,您必须创建一个带有函数indexAction()
的IndexController.php。
对于第二个示例http://www.magento.com/part/view/
,您必须创建一个名为PartController.php的控制器,方法名称为indexAction()
。
您在控制器内创建的每个操作都代表一个页面,因此请明智地使用它。作为最佳实践,使用类似数据的操作始终分组在单个控制器中。
例如,在CRUD应用程序中,列出,添加,编辑,删除,保存所有操作等各种操作通常会添加到单个控制器中。