我正在创建一个模块,允许客户在未到达处理阶段的情况下编辑订单,到目前为止一切正常,但在订单历史记录页面上我有这3个链接
View Order | http://www.site.com/Current-Build/sales/order/view/order_id/[ID]/
Reorder | http://www.site.com/Current-Build/sales/order/reorder/order_id/[ID]/
Edit Order (mine) | http://www.site.com/Current-Build/mymodulefrontname/order/edit/order_id/[ID]/
让事情看起来很整洁我尝试通过将我的模块的<frontName>
更改为config.xml中的sales并将mymodulefrontname
更改为sales
来更改我的链接以匹配之前的2虽然这对我的链接问题有用,但现在前2个链接现在转到404页
有没有办法让我的模块与Mage_Sales具有相同的前缀,而不会引起冲突
答案 0 :(得分:5)
Magento introduced the ability to add directories under existing frontnames in Magento 1.3 [link]。
您的案例中的适当语法是:
<frontend>
<routers>
<sales>
<args>
<modules>
<arbitrary after="Mage_Sales">Your_Module_Sales</arbitrary>
<!-- points to Your/Module/controllers/Sales/ -->
</modules>
</args>
</sales>
</routers>
</frontend>
使用editAction()
方法在匹配目录中创建 OrderController.php 类,您就可以开展业务了。
作为样式,上面的配置将开始匹配模块的 controllers 目录下 Sales 子目录中的路由。我更喜欢将这些类型的控制器分开;您可以选择不同的子目录,也可以选择不使用一个子目录。