我在Magento adminpanel中的模块的网址类似于http://example.com/index.php/mymodule/ ...并包含订单的自定义网格。我想在点击网格行时将用户重定向到标准的“订单视图”页面。
public function getRowUrl($row)
{
if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/view')) {
return $this->getUrl('sales_order/view', array('order_id' => $row->getId()));
}
return false;
}
但此网址指向http://example.com/index.php/sales_order/view/ ...而不是http://example.com/index.php/ 管理员 / sales_order / view / ...有任何建议吗?
UPD。 config.xml中:
<admin>
<routers>
<mymodule>
<use>admin</use>
<args>
<module>Foo_Mymodule</module>
<frontName>mymodule</frontName>
</args>
</mymodule>
</routers>
</admin>
答案 0 :(得分:7)
很简单,您需要将sales_order/view
替换为*/sales_order/view
。 *
表示使用管理员adminhtml
中的当前路由器。
修改强>
要更详细地解释,请将其放入您的配置中,
<admin>
<routers>
<adminhtml>
<args>
<modules>
<mymodule after="Mage_Adminhtml">Foo_Mymodule_Adminhtml</mymodule>
</modules>
</args>
</adminhtml>
</routers>
</admin>
现在,值*/mymodule/index
将生成一个网址http://example.com/index.php/admin/mymodule/index
,后者将加载文件Foo/Mymodule/controllers/Adminhtml/MymoduleController.php
并尝试查找方法Foo_Mymodule_Adminhtml_MymoduleController::indexAction()
。如果该方法存在则运行,否则管理路由器接管并显示404或重定向到仪表板。