我正在尝试为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');
}
}
答案 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,并确定没有错字错误。 如果您在管理员中找到您的模块,那么确认您的模块已注册。
你正在扩展一个控制器。所以做了什么来覆盖核心控制器。