Magento模块管理员返回一个404

Magento模块管理员返回一个404,magento,module,http-status-code-404,admin,config,Magento,Module,Http Status Code 404,Admin,Config,相信我,我知道在这个话题上有无数的问题和回答。我有一个自定义模块,后端部分返回404。我已经搜索了配置文件,但它“似乎”没有任何错误(如果它返回404,显然会有一个错误)。我想知道是否有人有一个良好的眼睛,可以找到错误!如果有的话。模块正在加载(前端显示)。这是配置文件: <?xml version="1.0"?> <config> <modules> <Namespace_TestMySql4> &

相信我,我知道在这个话题上有无数的问题和回答。我有一个自定义模块,后端部分返回404。我已经搜索了配置文件,但它“似乎”没有任何错误(如果它返回404,显然会有一个错误)。我想知道是否有人有一个良好的眼睛,可以找到错误!如果有的话。模块正在加载(前端显示)。这是配置文件:

<?xml version="1.0"?>
<config>
    <modules>
        <Namespace_TestMySql4>
            <version>0.1.0</version>
        </Namespace_TestMySql4>
    </modules>
    <frontend>
        <routers>
            <testmysql4>
                <use>standard</use>
                <args>
                    <module>Namespace_TestMySql4</module>
                    <frontName>testmysql4</frontName>
                </args>
            </testmysql4>
        </routers>
        <layout>
            <updates>
                <testmysql4>
                    <file>testmysql4.xml</file>
                </testmysql4>
            </updates>
        </layout>
    </frontend>
    <!--admin add needed? -->
    <admin>
        <routers>
            <!--<testmysql4>
                <use>admin</use>
                <args>
                    <module>Namespace_TestMySql4</module>
                    <frontName>testmysql4</frontName>
                </args>
            </testmysql4> -->
            <adminhtml>
                <args>
                    <modules>
                        <testmysql4 before="Mage_Adminhtml">Namespace_TestMySql4_Adminhtml</testmysql4>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    <adminhtml>
        <menu>
            <testmysql4 translate ="title" module="testmysql4">
                <title>TestMySql4</title>
                <sort_order>71</sort_order>
                <children>
                    <items translate="title" module="testmysql4">
                        <title>Manage Reports</title>
                        <sort_order>0</sort_order>
                        <action>adminhtml/testmysql4</action>
                    </items>
                </children>
            </testmysql4>
        </menu>
        <acl>
            <resources>
                <all>
                    <title>Allow Everything</title>
                </all>
                <admin>
                    <children>
                        <testmysql4>
                            <title>TestMySql4 Module</title>
                            <sort_order>200</sort_order>
                        </testmysql4>
                    </children>
                </admin>
            </resources>
        </acl>
        <layout>
            <updates>
                <testmysql4>
                    <file>testmysql4.xml</file>
                </testmysql4>
            </updates>
        </layout>
    </adminhtml>
    <!-- admin changes -->
    <global>
        <models>
            <testmysql4>
                <class>Namespace_TestMySql4_Model</class>
                <resouceModel>testmysql4_mysql4</resouceModel>
            </testmysql4>
            <testmysql4_mysql4>
                <class>Namespace_TestMySql4_Model_Mysql4</class>
                <entities>
                    <testmysql4>
                        <table>testmysql4</table>
                    </testmysql4>
                </entities>
            </testmysql4_mysql4>
        </models>
        <resources>
            <testmysql4_setup>
                <setup>
                    <module>Namespace_TestMySql4</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </testmysql4_setup>
            <testmysql4_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </testmysql4_write>
            <testmysql4_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </testmysql4_read>
        </resources>
        <blocks>
            <testmysql4>
                <class>Namespace_TestMySql4_Block</class>
            </testmysql4>
        </blocks>
        <helpers>
            <testmysql4>
                <class>Namespace_TestMySql4_Helper</class>
            </testmysql4>
        </helpers>
    </global>
</config>
这是控制器:

<?php

class Namespace_TestMySql4_Adminhtml_TestMySql4Controller extends Mage_Adminhtml_Controller_Action
{

    protected function _initAction()
    {

        $this->loadLayout()->_setActiveMenu('testmysql4/items')->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
        return $this;

    }

    public function indexAction()
    {

        //$this->_initAction();
        //$this->_addContent($this->getLayout()->createBlock('testmysql4/adminhtml_testmysql4'));
        //$this->renderLayout();
        echo 'hello'; //my goal was to see if it called this function at all (1st) step

    }

    public function editAction()
    {

        $testmysql4Id     = $this->getRequest()->getParam('id');
        $testmysql4Model  = Mage::getModel('testmysql4/testmysql4')->load($testmysql4Id);

        if ($testmysql4Model->getId() || $testmysql4Id == 0) {

            Mage::register('testmysql4_data', $testmysql4Model);

            $this->loadLayout();
            $this->_setActiveMenu('testmysql4/items');

            $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
            $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));

            $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);

            $this->_addContent($this->getLayout()->createBlock('testmysql4/adminhtml_testmysql4_edit'))
                ->_addLeft($this->getLayout()->createBlock('testmysql4/adminhtml_testmysql4_edit_tabs'));

            $this->renderLayout();

        }

        else
        {

            Mage::getSingleton('adminhtml/session')->addError(Mage::helper('testmysql4')->__('Item does not exist'));
            $this->_redirect('*/*/');

        }

    }

    public function newAction()
    {

        $this->_forward('edit');

    }

    public function saveAction()
    {
        if ( $this->getRequest()->getPost() ) {
            try {
                $postData = $this->getRequest()->getPost();
                $testmysql4Model = Mage::getModel('testmysql4/testmysql4');

                $testmysql4Model->setId($this->getRequest()->getParam('id'))->setTitle($postData['title'])->setContent($postData['content'])->setStatus($postData['status'])->save();

                Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully saved'));
                Mage::getSingleton('adminhtml/session')->setTestMySql4Data(false);

                $this->_redirect('*/*/');
                return;

                } catch (Exception $e) {

                    Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
                    Mage::getSingleton('adminhtml/session')->setTestMySql4Data($this->getRequest()->getPost());
                    $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
                    return;

                }

        }

        $this->_redirect('*/*/');

    }

    public function deleteAction()
    {

        if( $this->getRequest()->getParam('id') > 0 ) {

            try {

                $testmysql4Model = Mage::getModel('testmysql4/testmysql4');

                $testmysql4Model->setId($this->getRequest()->getParam('id'))->delete();

                Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
                $this->_redirect('*/*/');

                } catch (Exception $e) {

                Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
                $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));

            }

        }

        $this->_redirect('*/*/');

    }
    /**
     * Product grid for AJAX request.
     * Sort and filter result for example.
     */
    public function gridAction()
    {

        $this->loadLayout();
        $this->getResponse()->setBody(
            $this->getLayout()->createBlock('testmysql4/adminhtml_testmysql4_grid')->toHtml()
        );

    }

}

在菜单中,您可以在URL中使用以下内容:

<action>adminhtml/testmysql4</action>

传统上,URL都是小写的,因此第一个选项是常规的。

与安装新扩展后相同:


添加“acl”字段后,您必须与管理员断开连接/重新连接,以防止404错误。

如果您包含控制器源及其文件名,也会有所帮助。既然你有一个
部分,那么你可能需要注销和登录才能获得新的权限。相信我,我确实注销并重新登录了。哪个url会给你
404错误
?这是一个非常老的问题(对我来说)。钟表匠是对的。这些案件就是问题所在。
<action>adminhtml/testmysql4</action>
<action>adminhtml/testMySql4</action>