magento - 如何在 Magento 管理中获取页面/部分的 URL

标签 magento magento-1.5

我似乎找不到关于这个问题的明确答案。您如何获取管理后端页面的 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/

相关文章:

javascript - URL 中的尾随哈希 (#) 会破坏某些 Javascript?

magento - PHP fatal error : Undefined class constant 'XML_PATH_CUSTOM_ADMIN_PATH in/app/code/core/Mage/Core/Controller/Varien/Front. php 第 342 行

php - 如何从 magento 1.5 类别中删除产品

magento - 我在哪里错误地使用了 Magento 的观察者模式?

php - Magento A-Z 页面

php - Magento - CSS 编译

php - Magento 2 自定义地址属性未加载到结帐页面的地址簿中

magento - 如何为 onepagechekout 自动填写送货方式 Magento

magento - Magento 中的高级导出配置文件

Magento EAV : how to hard delete an attribute value?