dongli2000 2014-05-22 09:12
浏览 43
已采纳

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

I am getting 404 error page in my custom module admin url.

My admin end url like magento1.9/index.php/admin/fortuneform/index/key/43a83958a538fd0a628c3236d4d059f7/

Once I am click this url it goes to frontend with same url and shows 404 error page.

config.xml file :

<?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 file :

<?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/default/default/layout/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 file :

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();
    } }

Please help me....

  • 写回答

2条回答 默认 最新

  • douzhi9921 2014-05-22 09:19
    关注

    Your adminhtml.xml should look like this. It has action defined as

    <action>adminhtml/fortuneform</action>
    

    but it should be <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>
    

    Replace config.xml with below code

    <?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>
    

    Also your controller folder name should be controller i.e. in lower case

    Clear your cache and try

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效