管理员控制器无法在Magento中工作

时间:2015-01-12 16:06:06

标签: magento

我使用了yeoman生成器来构建Magento模块骨架。

我只需使用以下命令即可访问前端模块: http://prueba.com/index.php/prueba/index

但我无法使管理员工作。这些是我的文件:

/etc/adminhtml.xml

<config>

        <menu>
            <prueba>
                <title>My Tab</title>
                <sort_order>1</sort_order>
                     <action>adminhtml/prueba/index</action>
            </prueba>        
        </menu>
    </config>

/controllers/adminhtml/IndexController.php

<?php
/**
 * Index Adminhtml Controller
 *
 */
class Altimea_Prueba_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action 
{
    /**
     * Index Action
     */
    public function indexAction()
    {
        $this->loadLayout();
        $this->renderLayout();
        echo 'hello';
    }
}

/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Altimea_Prueba>
            <version>0.1.0</version>
        </Altimea_Prueba>
    </modules>
    <global>
        <models>
            <altimeaprueba>
                <class>Altimea_Prueba_Model</class>
            </altimeaprueba>
        </models>
        <blocks>
            <altimeaprueba>
                <class>Altimea_Prueba_Block</class>
            </altimeaprueba>
        </blocks>
        <helpers>
            <altimeaprueba>
                <class>Altimea_Prueba_Helper</class>
            </altimeaprueba>
        </helpers>

        <resources>
            <altimeaprueba_setup>
                <setup>
                    <module>Altimea_Prueba</module>
                    <class>Altimea_Prueba_Model_Resource_Setup</class>
                </setup>
            </altimeaprueba_setup>
        </resources>

    </global>

    <frontend>

        <layout>
            <updates>
                <altimeaprueba>
                    <file>altimeaprueba.xml</file>
                </altimeaprueba>
            </updates>
        </layout>


        <routers>
            <altimeaprueba>
                <use>standard</use>
                <args>
                    <module>Altimea_Prueba</module>
                    <frontName>prueba</frontName>
                </args>
            </altimeaprueba>
        </routers>

    </frontend>


    <adminhtml>

        <layout>
            <updates>
                <altimeaprueba>
                    <file>altimeaprueba.xml</file>
                </altimeaprueba>
            </updates>
        </layout>

    </adminhtml>

    <admin>
        <routers>
            <altimeaprueba>
                <use>admin</use>
                <args>
                    <module>Altimea_Prueba</module>
                    <frontName>prueba</frontName>
                </args>
            </altimeaprueba>
        </routers>
    </admin>


</config>

4 个答案:

答案 0 :(得分:1)

创建magento管理模块时,您可以使用以下两种方式之一创建它。由于您同时拥有前端和后端控制器,请尝试将管理路由更改为<frontname>admin_prueba</frontname>,然后尝试http://prueba.com/index.php/admin_prueba/index

<adminhtml>
    <menu>
        <menu1 translate="title" module="customlist">
            <title>ActiveCodeline SampleModule1</title>
            <sort_order>60</sort_order>
            <children>
                <menuitem1 module="SampleModule1">
                    <title>Menu item 1</title>
                    <action>{{customlist}}/index</action>
                </menuitem1>


<admin>
    <routers>
        <samplemodule1>
            <use>admin</use>
            <args>
                <module>ActiveCodeline_SampleModule1</module>
                <frontname>admin_customlist</frontname>
            </args>
        </samplemodule1>
    </routers>
</admin>

<adminhtml>
    <menu>
        <menu1 translate="title" module="customlist">
            <title>ActiveCodeline SampleModule1</title>
            <sort_order>60</sort_order>
            <children>
                <menuitem1 module="SampleModule1">
                    <title>Menu item 1</title>
                    <action>{{adminhtml/customlist}}/index</action>
                </menuitem1>

<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <Company_CustomList before="Mage_Adminhtml">Foo_Bar_Adminhtml</Company_CustomList>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

答案 1 :(得分:0)

您错过了在config.xml中添加此内容

    <admin>
    <routers>
        <adminhtml>
            <use>admin</use>
            <args>
            <modules>
                <altimea_prueba after="Mage_Adminhtml">Altimea_Prueba_Adminhtml</altimea_prueba>
            </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

答案 2 :(得分:0)

config.xml中,更改此内容:

<admin>
    <routers>
        <altimeaprueba>
            <use>admin</use>
            <args>
                <module>Altimea_Prueba</module>
                <frontName>prueba</frontName>
            </args>
        </altimeaprueba>
    </routers>
</admin>

对此:

<admin>
    <routers>
        <altimea_prueba>
            <use>admin</use>
            <args>
                <module>Altimea_Prueba</module>
                <frontName>prueba</frontName>
            </args>
        </altimea_prueba>
    </routers>
</admin>

如果你想看到你的&#34;你好&#34;打印出来,在IndexController.php中,在exit();

之后添加echo "hello";

答案 3 :(得分:0)

仅供参考 我花了很长时间才弄清楚

<args> <modules> <myrandomtag before="Mage_Adminhtml"> My_Module_Adminhtml </myrandomtag> </modules> </args>

与此不相同

<args> <modules> <myrandomtag before="Mage_Adminhtml">My_Module_Adminhtml</myrandomtag> </modules> </args>

因此,随机标记中不应有空格或新行