gpt4 book ai didi

php - Magento 管理员路由不起作用

转载 作者:可可西里 更新时间:2023-10-31 23:57:33 24 4
gpt4 key购买 nike

我正在为 Magento 的管理区域开发一个模块。我正在尝试按照 Alan Storm 关于 Magento admin controllers 的教程进行操作但似乎无法让我的 Controller 做任何事情。我认为这可能与路由有关,但我不确定。它向我展示了带有 404 错误的前端模板。

(注意:我在这里包含了所有相关代码。实际问题在最底部。)

该模块名为 Mynamespace_Donor,位于 app/code/local/Mynamespace/Donor/中。

我的 etc/config.xml 看起来像这样:

<?xml version="1.0"?>
<config>
<modules>
<Mynamespace_Donor>
<version>0.1.0</version>
</Mynamespace_Donor>
</modules>
<global>
<helpers>
<donor>
<class>Mynamespace_Donor_Helper</class>
</donor>
</helpers>
<resources>
<donor_setup>
<setup>
<module>Mynamespace_Donor</module>
</setup>
</donor_setup>
</resources>
</global>

<admin>
<routers>
<donor>
<use>admin</use>
<args>
<module>Mynamespace_Donor</module>
<frontname>donor</frontname>
</args>
</donor>
</routers>
</admin>

<adminhtml>
<menu>
<donor translate="title" module="donor">
<title>Donor</title>
<sort_order>42</sort_order>
<children>
<manage_donors module="donor">
<title>Manage Donors</title>
<action>donor/index/index</action>
</manage_donors>
</children>
</donor>
</menu>
</adminhtml>
</config>

我的 controllers/IndexController.php 看起来像这样:

<?php
class Mynamespace_Donor_IndexController extends Mage_Adminhtml_Controller_Action
{
public function indexAction()
{
$this->loadLayout();

//create a text block with the name of "example-block"
$block = $this->getLayout()
->createBlock('core/text', 'example-block')
->setText('<h1>This is a text block</h1>');

$this->_addContent($block);

$this->renderLayout();
}
}

菜单项将我指向 /index.php/donor/index/index/key/e98a...它显示了一个 404 页面。当我尝试直接转到 /donor 时, /index.php/donor , /index.php/donor/index等,我仍然收到 404 错误。

如果我删除 <helpers>从配置中,Magento 提示找不到它。如果我删除 <adminhtml>部分,它停止提示,即使我还有我的 <admin><routers>那里的部分(不知道路由的东西是否需要帮助,或者这是否相关)。

我也试过在 <adminhtml> 下添加这个 block ,但是当我尝试编辑角色权限时,我得到一个包含此错误的白页:Fatal error: Class 'Mage_Mynamespace_Donor_Helper_Data' not found in /home/mysite/public_html/magento_dev_1_10/app/Mage.php on line 520

<acl>
<resources>
<admin>
<children>
<donor translate="title" module="Mynamespace_Donor">
<title>Donors</title>
<sort_order>60</sort_order>
<children>
<manage_donors>
<title>Manage Donors</title>
</manage_donors>
</children>
</donor>
</children>
</admin>
</resources>
</acl>

问题:我在这里做错了什么?为什么我不能访问这个 Controller ?

最后,在 Alan 的示例代码中,URL 以模块名称开头,但我希望我的以 /admin/donor 开头而不是 /donor .我需要为此做出哪些改变?


编辑 1最终目标是在管理区域中有一个新选项卡,用于管理系统中的捐赠者和相关数据。当您单击某些菜单项时,我想显示一个网格并具有子选项卡和类似的东西。我想要覆盖 adminhtml Controller - 虽然我正在根据 Alan's suggestion 扩展它:

The only difference from a standard controller here is that we’re extending Mage_Adminhtml_Controller_Action instead of Mage_Core_Controller_Varien_Action. Mage_Adminhtml_Controller_Action contains important code for validating the admin session, as well as several methods that are useful in an Admin Console context.

所以在这张图片中,单击第一个子菜单项应该调用我的 Controller 的索引操作并显示网格或其他东西来管理捐助者。

The menu

最佳答案

尝试替换:

<frontname>donor</frontname>

与:

<frontName>donor</frontName>

这将修复您的 404 错误。

关于php - Magento 管理员路由不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6389081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com