我正在尝试为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);
}
}
Run Code Online (Sandbox Code Playgroud)
模型树视图:
Run Code Online (Sandbox Code Playgroud)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>
Run Code Online (Sandbox Code Playgroud)
在我的模型中,我有一个简单的:
class MyVendor_MyModule_Model_Mysql4_MyModule extends Mage_Core_Model_Mysql4_Abstract
{
public function _construct()
{
$this->_init('mymodule/mymodule', 'id');
}
}
Run Code Online (Sandbox Code Playgroud)
根据平台,Mage::getModel('mymodule/mymodule');在查找要加载的文件时可能区分大小写(即应该Mage::getModel('myModule/myModule');给出您的文件夹结构和命名)
检查get_class(Mage :: getModel('mymodule/mymodule'))返回的内容.它是你班级的班级名字吗?如果没有,那么你甚至没有制作你的对象的实例.早点检查驼峰套管,并确实有一个文件/MyVendor/MyModule/Model/MyModule.php(你没有包含代码).
如果您有一个类的实例,则可能在DB中没有任何行来支持它.所以 - > load(1); 不会做任何事情.