如何在magento中实例化模型

时间:2013-06-19 11:35:44

标签: magento

我是Magento的新手,目前正在关注this教程。

虽然我无法获得

,但教程似乎非常清晰且有用
include(Alan/Storm/Model/Blogpost.php) [function.include]: failed to open stream: No such file or directory

显示错误,我的错误已打开。显然,如果我可以像下一步中的教程那样显示模型名称,这不会有问题,但我遗漏了一些东西,需要对我的代码提供一些指导。

艾伦/风暴的/ etc / config.xml中

<config>
<modules>
    <Alan_Storm>
        <version>0.1.0</version>
    </Alan_Storm>
</modules>

<models>        
    <storm>
        <class>Alan_Storm_Model</class>            
        <resourceModel>storm_mysql4</resourceModel>
    </storm>
</models>

<frontend>
    <routers>
        <storm>
            <use>standard</use>
            <args>
                <module>Alan_Storm</module>
                <frontName>storm</frontName>
            </args>
        </storm>
    </routers>
</frontend>

艾伦/风暴/控制器/ indexController.php

class Alan_Storm_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction() {
    echo 'This is the Alan Storm Module';
}

public function testModelAction() {
    $blogpost = Mage::getModel('storm/blogpost');
    echo get_class($blogpost);
}
}

我尝试将Alan / Storm / Model文件夹留空,但当我访问http://magentotest.local/storm/Index/testModel时,我只是一个空白的屏幕。我还尝试将Blogpost.php添加到Model文件夹中,但这没有帮助。

我做错了什么?

EDIT!

我已经改变了

    public function testModelAction() {
    $blogpost = Mage::getModel('storm/blogpost');
    echo get_class($blogpost);
}

public function testModelAction() {
    $blogpost = Mage::getModel('storm/blogpost');
    echo get_class($blogposts);
}

为什么这样做?在使用get_class函数之前,我没有创建一个名为$ blogposts的变量。值得注意的是,我在数据库中的表名为blogposts,但我不知道如何在脚本中进行此调整。

编辑2

新方法只显示我正在使用的控制器的名称,而不是模型/ blogpost.php,这是我认为我要求的

1 个答案:

答案 0 :(得分:2)

根据您提供的代码示例,您的<models/>标记位于错误的位置。

您已将其直接放在<config/>节点下。

<!-- this is wrong -->
<config>
    <models>     
        <!-- ... -->
    </models>
</config>

它应该在<global/>节点

<config>
    <global>        
        <models>
            <!-- ... -->
        </models>
    </global>
</config>

您可能已被代码示例绊倒,代码示例仅显示部分片段,而不是整个文档树。请注意顶级节点是<global/>

enter image description here

那些代码示例可能更清晰 - 我当时还在让我的教程在我的下面写作。