我似乎找不到关于这个问题的明确答案。您如何获取管理后端页面的 URL?
例如,假设我有一个模块,该模块使用的 Controller 的前端名称为 mymodule。如果我打电话:
$this->getUrl('mymodule/controller/action')
我得到:
http://mydomain.com/index.php/mymodule/controller/action
这是行不通的,因为它没有包含管理员名字。
我找到了 this thread提到使用这个:
Mage::helper("adminhtml")->getUrl();
然而,这也没有将 admin frontname 附加到 URL...那么通过 adminhtml 助手传递它有什么意义呢?该线程还说您可以使用它来获取管理员名字:
Mage::getConfig()->getNode('admin/routers/adminhtml/args/frontName');
那么我应该使用这两种方法构建正确的 URL 还是有更简单的方法来完成这个?我想一定有一个简单的方法,但我就是想不通。
谢谢:)
最佳答案
您确实打算通过 $this->getUrl('mymodule/controller/action') 获取 URL。然而,这种困惑源于对路由系统的误解。 admin 标记指定使用管理路由器,而 mymodule 指定 URL 中使用的前面名称。基本上你是在创建自己的名字。要使用管理前台名称,您需要使用 Controller 重写来完成它。类似于以下内容:
<admin>
<routers>
<adminhtml>
<args>
<modules>
<mymodule after="Mage_Adminhtml">Your_Mymodule</mymodule>
</modules>
</args>
</adminhtml>
</routers>
</admin>
它所做的是配置路由系统以查看您的 Controller 以执行适当的操作,但前提是它在 Mage_Adminhtml Controller 上找不到 Controller 。
请注意,在使用此重写时,您需要在调用 getURL 时使用“adminhtml”而不是“mymodule”,因为您的 URL 将属于 adminhtml 设置的前面名称。
您找到的是让您自己的前台名称正常工作的正确解决方案,只要您不关心使用 admin 前台名称,它就可以正常工作。 :)
关于magento - 如何在 Magento 管理中获取页面/部分的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877683/