【问题标题】:How to create a simple 'Hello World' module in Magento? - 404 Error如何在 Magento 中创建一个简单的“Hello World”模块? - 404 错误
【发布时间】:2015-07-23 15:20:33
【问题描述】:

我正在关注 answer 到 stackoverflow 问题 576908,但我似乎遇到了 404 错误。有谁知道我做错了什么。即初学者的错误?

索引控制器:

    <?php
      class MyCompanyName_HelloWorld_IndexController extends         Mage_Core_Controller_Front_Action{
    public function indexAction(){
        echo "We're echoing just to show that this is what's called, normally you'd have some kind of redirect going on here";
    }
}

Config.xml:

<?xml version="1.0"?>
  <config>
 <modules>
    <mycompanyname_helloworld>
        <version>
            0.1.0
        </version>
    </mycompanyname_helloworld>
</modules>
<frontend>
    <routers>
        <!-- the <helloworld> tagname appears to be arbitrary, but by
        convention is should match the frontName tag below-->
        <helloworld>
            <use>standard</use>
            <args>
                <module>MyCompanyName_HelloWorld</module>
                <frontName>helloworld</frontName>
            </args>
        </helloworld>
    </routers>
</frontend>
</config>

在 app/etc/modules 中:

<?xml version="1.0"?>
<config>
<modules>
    <MyCompanyName_Helloworld>
        <active>true</active>
        <codePool>community</codePool>
    </MyCompanyName_Helloworld>
</modules>
</config>

我一直收到一个

404 错误

当我点击网址时 magento.dev/index.php/helloworld
//NB 这个url是我的开发机器上的一个虚拟主机。

我正在运行 magento 1.8

【问题讨论】:

    标签: php magento


    【解决方案1】:

    确保配置中的所有内容都一致命名(例如在骆驼情况下):

    /app/etc/modules/MyCompanyName_HelloWorld.xml

    <?xml version="1.0"?>
    <config>
    <modules>
        <MyCompanyName_HelloWorld>
            <active>true</active>
            <codePool>community</codePool>
        </MyCompanyName_HelloWorld>
    </modules>
    </config>
    

    /app/code/community/MyCompanyName/HelloWorld/etc/config.xml:

    <?xml version="1.0"?>
    <config>
        <modules>
            <MyCompanyName_HelloWorld>
                <version>
                    0.1.0
                </version>
            </MyCompanyName_HelloWorld>
        </modules>
    ...
    

    对此的完整调用将是 magento.dev/index.php/helloworld/index/index/。

    这些应该也可以:

    magento.dev/index.php/helloworld/index/
    
    magento.dev/index.php/helloworld/
    

    让它为我工作。

    【讨论】:

    • 这应该可以。此外,不要忘记清除缓存或禁用它们:)
    【解决方案2】:

    试试 magento.dev/index.php/helloworld/index 您在 url 中传递了 frontName,但没有将控制器名称传递给 url。 顺便说一句,为您的扩展使用本地代码拉取。

    【讨论】:

    • Statichny,这不起作用。此外,我正在尝试构建一个社区扩展,因此根据 magento 文档,我的代码应该存在于社区目录中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 2014-12-23
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多