Magento自定义模块管理员网址返回前端和404错误页面

时间:2014-05-22 09:12:09

标签: php magento

我的自定义模块管理员网址中出现404错误页面。

我的管理员结束网址喜欢 magento1.9 / index.php的/管理/ fortuneform /索引/键/ 43a83958a538fd0a628c3236d4d059f7 /

点击此网址后,会转到相同网址的前端,并显示404错误页面。

config.xml文件:

<?xml version="1.0"?>
<config>
    <modules>
        <Fortunesoft_Fortuneform>
            <version>0.1.0</version>
        </Fortunesoft_Fortuneform>
    </modules>
    <frontend>
        <routers>
            <fortuneform>
                <use>standard</use>
                <args>
                    <module>Fortunesoft_Fortuneform</module>
                    <frontName>fortuneform</frontName>
                </args>
            </fortuneform>
        </routers>
        <layout>
            <updates>
                <fortuneform>
                    <file>fortuneform.xml</file>
                </fortuneform>
            </updates>
        </layout>
    </frontend>
    <admin>
    <routers>
        <fortuneform>
            <use>admin</use>
            <args>
                <modules>
                    <fortuneform before="Mage_Adminhtml">Fortunesoft_Fortuneform_Adminhtml</fortuneform>
                </modules>                  
            </args>
        </fortuneform>
    </routers>
</admin>
<global>
        <models>
            <fortuneform>
                <class>Fortunesoft_Fortuneform_Model</class>
                <resourceModel>fortuneform_mysql4</resourceModel>
            </fortuneform>
            <fortuneform_mysql4>
                <class>Fortunesoft_Fortuneform_Model_Mysql4</class>
                <entities>
                    <fortuneform>
                        <table>fortuneform</table>
                    </fortuneform>
                </entities>
            </fortuneform_mysql4>
        </models>
        <resources>
            <fortuneform_setup>
                <setup>
                    <module>Fortunesoft_Fortuneform</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </fortuneform_setup>
            <fortuneform_write>
                <connection>
                    <use>core_write</use>
                </connection>    
            </fortuneform_write>
            <fortuneform_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </fortuneform_read>
        </resources>
        <blocks>
            <fortuneform>
                <class>Fortunesoft_Fortuneform_Block</class>
            </fortuneform>
        </blocks>
        <helpers>
            <fortuneform>
                <class>Fortunesoft_Fortuneform_Helper</class>
            </fortuneform>
        </helpers>
    </global>
</config>   

adminhtml.xml文件:

<?xml version="1.0"?>
<config>
    <menu><fortuneform module="fortuneform">
            <title>Fortuneform</title>
            <sort_order>71</sort_order>
            <children>
                <items module="fortuneform">
                    <title>Manage Items</title>
                    <sort_order>0</sort_order>
                  <action>adminhtml/fortuneform</action>
                </items>
            </children>
        </fortuneform></menu>
    <acl>
        <resources>
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <fortuneform>
                        <title>Fortuneform Module</title>
                        <sort_order>200</sort_order>
                    </fortuneform>
                </children>
            </admin>
        </resources>   
    </acl>
    <layout>
        <updates>
            <fortuneform>
                <file>fortuneform.xml</file>
            </fortuneform>
        </updates>
    </layout>

adminhtml /默认/默认/布局/ fortuneform.xml

<?xml version="1.0"?>
 <layout version="0.1.0">
    <fortuneform_adminhtml_fortuneform_index>
        <reference name="content">
            <block type="fortuneform/adminhtml_fortuneform" name="fortuneform" />
        </reference>
    </fortuneform_adminhtml_fortuneform_index>
 </layout>

Controllers / Adminhtml / FortuneformController.php文件:

class Fortunesoft_Fortuneform_Adminhtml_FortuneformController extends  Mage_Adminhtml_Controller_Action
{

    protected function _initAction()
    {
        $this->loadLayout()
            ->_setActiveMenu('fortuneform/items')
            ->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
        return $this;
    }   

    public function indexAction() {
        $this->_initAction();       
        $this->_addContent($this->getLayout()->createBlock('fortuneform/adminhtml_fortuneform'));
        $this->renderLayout();
    } }

请帮助我....

2 个答案:

答案 0 :(得分:1)

您的 adminhtml.xml 应该如下所示。它的行动定义为

<action>adminhtml/fortuneform</action>

但应该是<action>fortuneform/adminhtml_fortuneform</action>

<?xml version="1.0"?>
<config>

    <menu>
    <fortuneform module="fortuneform">
            <title>Fortuneform</title>
            <sort_order>71</sort_order>
            <children>
                <items module="fortuneform">
                    <title>Manage Items</title>
                    <sort_order>0</sort_order>
                  <action>fortuneform/adminhtml_fortuneform</action> 
                </items>
            </children>
        </fortuneform>
    </menu>

    <acl>
        <resources>
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <fortuneform>
                        <title>Fortuneform Module</title>
                        <sort_order>200</sort_order>
                    </fortuneform>
                </children>
            </admin>
        </resources>   
    </acl>
    <layout>
        <updates>
            <fortuneform>
                <file>fortuneform.xml</file>
            </fortuneform>
        </updates>
    </layout>

</config>

将config.xml替换为以下代码

<?xml version="1.0"?>
<config>
    <modules>
        <Fortunesoft_Fortuneform>
            <version>0.1.0</version>
        </Fortunesoft_Fortuneform>
    </modules>
    <frontend>
        <routers>
            <fortuneform>
                <use>standard</use>
                <args>
                    <module>Fortunesoft_Fortuneform</module>
                    <frontName>fortuneform</frontName>
                </args>
            </fortuneform>
        </routers>
        <layout>
            <updates>
                <fortuneform>
                    <file>fortuneform.xml</file>
                </fortuneform>
            </updates>
        </layout>
    </frontend>


        <admin>
        <routers>
            <fortuneform>
                <use>admin</use>
                <args>
            <fortuneform before="Mage_Adminhtml">Fortunesoft_Fortuneform_Adminhtml</fortuneform>
                    <frontName>fortuneform</frontName>
                </args>
            </fortuneform>
        </routers>
    </admin>


<global>
        <models>
            <fortuneform>
                <class>Fortunesoft_Fortuneform_Model</class>
                <resourceModel>fortuneform_mysql4</resourceModel>
            </fortuneform>
            <fortuneform_mysql4>
                <class>Fortunesoft_Fortuneform_Model_Mysql4</class>
                <entities>
                    <fortuneform>
                        <table>fortuneform</table>
                    </fortuneform>
                </entities>
            </fortuneform_mysql4>
        </models>
        <resources>
            <fortuneform_setup>
                <setup>
                    <module>Fortunesoft_Fortuneform</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </fortuneform_setup>
            <fortuneform_write>
                <connection>
                    <use>core_write</use>
                </connection>    
            </fortuneform_write>
            <fortuneform_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </fortuneform_read>
        </resources>
        <blocks>
            <fortuneform>
                <class>Fortunesoft_Fortuneform_Block</class>
            </fortuneform>
        </blocks>
        <helpers>
            <fortuneform>
                <class>Fortunesoft_Fortuneform_Helper</class>
            </fortuneform>
        </helpers>
    </global>
</config>

您的控制器文件夹名称也应为控制器,即小写

清除缓存并尝试

答案 1 :(得分:0)

您的控制器路径应为

  

controllers / Adminhtml / FortuneformController.php(控制器中的小写c)

  

控制器/ Adminhtml / FortuneformController.php