【问题标题】:How to get the URL of a page/section in Magento admin如何在 Magento admin 中获取页面/部分的 URL
【发布时间】:2023-03-10 02:48:02
【问题描述】:

我似乎无法在这个问题上找到明确的答案。如何在后台管理页面获取 url?

例如,假设我有一个模块,它使用一个前端名称为 mymodule 的控制器。如果我打电话:

$this->getUrl('mymodule/controller/action')

我明白了:

http://mydomain.com/index.php/mymodule/controller/action

这不起作用,因为它没有包含管理员名称。

我发现this thread 提到使用这个:

Mage::helper("adminhtml")->getUrl();

但是,这也不会将管理员名称附加到 URL...那么通过 adminhtml 帮助程序传递它的意义何在?该线程还说您可以使用它来获取管理员名称:

Mage::getConfig()->getNode('admin/routers/adminhtml/args/frontName');

那么我应该使用这 2 种方法构建正确的 URL,还是有更简单的方法来完成此操作?我想一定有一个简单的方法,但我就是想不通。

谢谢:)

【问题讨论】:

  • 我尝试通过将前端名称保存为字符串然后调用 Mage::helper('adminhtml'->getUrl($frontname . '/mymodule/controller/action') 将这些放在一起,但它截断了操作。相反,如果我调用 ...getUrl($frontname . '/mymodule', array('controller'=>'action')),它会在 url (mydomain.com/index.php/admin/mymodule/index/controller/action) 中添加“索引”。所以现在我很困惑:(请帮忙!!!

标签: magento magento-1.5


【解决方案1】:

您确实打算通过 $this->getUrl('mymodule/controller/action') 获取 URL。然而,这种混乱正在阻止对路由系统的误解。 admin 标签指定使用管理路由器,mymodule 指定在 URL 中使用的前名。基本上,您正在创建自己的正面名称。要使用管理员前台名称,您需要使用控制器重写来完成它。类似于以下内容:

<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <mymodule after="Mage_Adminhtml">Your_Mymodule</mymodule>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

这样做的目的是配置路由系统以查看您的控制器以执行适当的操作,但前提是它在 Mage_Adminhtml 控制器上找不到相应操作。

请注意,在使用此重写时,您需要在调用 getURL 时使用“adminhtml”而不是“mymodule”,因为您的 URL 将属于 adminhtml 设置的前名。

您想出的是让您自己的前台名称正常工作的正确解决方案,并且只要您不关心使用管理员前台名称,它就可以正常工作。 :)

【讨论】:

  • +1。这是制作管理员 URL 的传统方式。
【解决方案2】:

我想我想通了,但如果我弄错了,请发表评论或添加您自己的答案。我的第一个问题是我的 config.xml 配置不正确。我在&lt;routers&gt; 元素下有&lt;frontend&gt; 而不是&lt;admin&gt;。我也有&lt;use&gt;standard&lt;/use&gt; 而不是&lt;use&gt;admin&lt;/use&gt;。复制粘贴错误;)

但是,这似乎仍然没有改变返回的 URL,但这似乎并不重要。它现在正确地击中了我的控制器,即使我重定向到的 url 不包含管理员名称。所以我对此有点困惑,但无论如何,它正在工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 2016-03-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    相关资源
    最近更新 更多