【问题标题】:Admin controller not working in Magento管理控制器在 Magento 中不起作用
【发布时间】:2016-05-20 17:04:51
【问题描述】:

我使用 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>

【问题讨论】:

    标签: magento


    【解决方案1】:

    创建 magento 管理模块时,您可以通过以下两种方式之一创建它。由于您同时拥有前端和后端控制器,请尝试将您的管理路由更改为 &lt;frontname&gt;admin_prueba&lt;/frontname&gt;,然后尝试 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>
    

    【讨论】:

      【解决方案2】:

      你错过了在 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>
      

      【讨论】:

      • 仍然没有加载 config.xml 中的控制器
      • 在回答中添加了 admin
      【解决方案3】:

      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>
      

      如果你想看到你的“你好”打印出来,在IndexController.php,在echo "hello";之后添加exit();

      【讨论】:

        【解决方案4】:

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

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

        不一样

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

        所以你的随机标签内不应该有空格或换行

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-07
          相关资源
          最近更新 更多