Magento模型未加载

时间:2013-03-11 21:58:31

标签: magento

我正在尝试为magento创建一个简单的模块。我已经创建了我的控制器,我的路线但由于某种原因我无法访问我的模型。据我所知,它甚至没有加载。

我没有收到任何错误消息,并且未创建模型对象。

可能导致这种情况的原因是什么?

以下是一些信息:

控制器:

class MyVendor_MyModule_IndexController extends Mage_Core_Controller_Front_Action
{

    public function pingAction(){

        $model = Mage::getModel('mymodule/mymodule');       
        echo "<pre>" . print_r($model->load(1),true);

    }
}

模型树视图:

MyVendor
-MyModule
-- controllers
---- IndexController.php
-- Model
---- Mysql4
-------- MyModule.php
-------- MyModule
---------------- Collection.php
---- MyModule.php
-- etc
---- config.xml

config.xml中

<?xml version="1.0" encoding="UTF-8"?>

<config> 
    <modules>
        <MyVendor_MyModule>
            <version>0.0.1</version>
        </MyVendor_MyModule>
    </modules>
    <frontend>
        <routers>
            <mymodule>
                <use>standard</use>
                <args>
                    <module>MyVendor_MyModule</module>
                    <frontName>mymodule</frontName>
                </args>
            </mymodule>
        </routers>   
    </frontend>
    <global>
        <models>
            <mymodule>
                <class>MyVendor_MyModule_Model</class>
                <resourceModel>mymodule_mysql4</resourceModel>
            </mymodule>
            <mymodule_mysql4>
                <class>MyVendor_MyModule_Model_Mysql4</class>
                <entities>
                    <mymodule>
                        <table>mymodule_table</table>
                    </mymodule>
                </entities>
            </mymodule_mysql4>
        </models>
        <resources>
                    <mymodule_setup>
                        <setup>
                                <module>MyVendor_MyModule</module>
                        </setup>
                        <connection>
                                <use>core_setup</use>
                        </connection>
                    </mymodule_setup>
                    <mymodule_setup>
                        <connection>
                                <use>core_write</use>
                        </connection>
                    </mymodule_setup>
                    <mymodule_setup>
                        <connection>
                                <use>core_read</use>
                        </connection>
                    </mymodule_setup>
            </resources>
    </global>
</config>

在我的模型中,我有一个简单的:

class MyVendor_MyModule_Model_Mysql4_MyModule extends Mage_Core_Model_Mysql4_Abstract
{
    public function _construct()
    {   
        $this->_init('mymodule/mymodule', 'id');
    }
}

2 个答案:

答案 0 :(得分:5)

根据平台,Mage::getModel('mymodule/mymodule');在查找要加载的文件时可能区分大小写(即,根据您的文件夹结构和命名,它应该是Mage::getModel('myModule/myModule');

检查get_class(Mage :: getModel('mymodule / mymodule'))返回的内容。它是你班级的班级名字吗?如果没有,那么你甚至没有制作你的对象的实例。早点检查驼峰套管,你实际上有一个文件/MyVendor/MyModule/Model/MyModule.php(你没有包含代码)。

如果您有一个类的实例,则可能在DB中没有任何行来支持它。所以 - &gt; load(1);什么都不做。

答案 1 :(得分:0)

您是否添加了app / etc / modules / MyVendor_MyModule.xml,并确定没有错字错误。 如果您在管理员中找到您的模块,那么确认您的模块已注册。

你正在扩展一个控制器。所以做了什么来覆盖核心控制器。