Orm Magento-设置型号读取适配器时出现问题

Orm Magento-设置型号读取适配器时出现问题,orm,frameworks,model,magento,Orm,Frameworks,Model,Magento,我一直在学习艾伦·斯托姆的教程,但我遇到了一些问题。当我到达第一次从模型加载的部分时,我得到了这个错误“致命错误:对非对象调用成员函数load()…”。我已经重置了所有内容,并重新尝试,但我仍然遇到同样的问题。我的代码如下所示: $params = $this->getRequest()->getParams(); $blogpost = Mage::getModel('weblog/blogpost'); var_dump($blogpost); echo("Loading

我一直在学习艾伦·斯托姆的教程,但我遇到了一些问题。当我到达第一次从模型加载的部分时,我得到了这个错误“致命错误:对非对象调用成员函数load()…”。我已经重置了所有内容,并重新尝试,但我仍然遇到同样的问题。我的代码如下所示:

 $params = $this->getRequest()->getParams();
 $blogpost = Mage::getModel('weblog/blogpost');
 var_dump($blogpost);
 echo("Loading the blogpost with an ID of ".$params['id']);
 $blogpost->load($params['id']);
正如您所看到的,我转储了$blogpost的内容,这表明它只是一个布尔值false。我的猜测是与数据库的连接有问题,或者由于某种原因,Mage::getModel()的代码没有正确安装

编辑-添加代码

有这么多,我只是决定粘贴他们哈哈


我猜法师找不到你的模型课了。仔细检查模块/模型名称,并验证模型是否位于文件系统中的正确位置(它应该位于app/code/local/Weblog/model/Blogpost.php中)


您还需要检查config.xml是否正确定义了模型类。如果您能通过config.xml和模型类,那将是最好的…

我猜Mage找不到您的模型类。仔细检查模块/模型名称,并验证模型是否位于文件系统中的正确位置(它应该位于app/code/local/Weblog/model/Blogpost.php中)


您还需要检查config.xml是否正确定义了模型类。如果您能够通过config.xml和模型类,那将是最好的…

您的model/Blogpost.php文件实际上应该是model/Mysql4/Blogpost.php,而您缺少了真正的model/Blogpost.php。

您的model/Blogpost.php文件实际上应该是model/Mysql4/Blogpost.php,您缺少了真正的模型/Blogpost.php。

快速浏览一下就会发现您缺少模型资源。回到下面的代码示例部分

File: app/code/local/Alanstormdotcom/Weblog/Model/Mysql4/Blogpost.php

class Alanstormdotcom_Weblog_Model_Mysql4_Blogpost extends Mage_Core_Model_Mysql4_Abstract{
    protected function _construct()
    {
        $this->_init('weblog/blogpost', 'blogpost_id');
    }   
}

快速浏览会发现您缺少模型资源。回到下面的代码示例部分

File: app/code/local/Alanstormdotcom/Weblog/Model/Mysql4/Blogpost.php

class Alanstormdotcom_Weblog_Model_Mysql4_Blogpost extends Mage_Core_Model_Mysql4_Abstract{
    protected function _construct()
    {
        $this->_init('weblog/blogpost', 'blogpost_id');
    }   
}

我将代码添加到帖子中。在你的评论中,你说路径应该是app/code/local/Weblog/Model/Blogpost.php,难道它不应该像我一样具有名称空间吗?我在帖子中添加了代码。在你的评论中,你说路径应该是app/code/local/Weblog/Model/Blogpost.php,难道它不应该像我一样有名称空间吗?很抱歉,你说的真正的Model/Blogpost.php是什么意思?Magento软件包中是否包含一个?请看Alan Storm的教程。有两个不同的文件称为Blogpost.php:model:model/Blogpost.php资源模型:model/Mysql4/Blogpost.php您的资源模型放错了位置:model/Blogpost.phpI抱歉,您说的真正的模型/Blogpost.php是什么意思?Magento软件包中是否包含一个?请看Alan Storm的教程。有两个不同的文件名为Blogpost.php:model:model/Blogpost.php资源模型:model/Mysql4/Blogpost.php您的资源模型放错了位置:model/Blogpost.phpPerfect,谢谢!不管出于什么原因,我对资源模型交易感到困惑,哈哈。“模型”给了你逻辑模型(“获取电子邮件地址,获取标题等”),资源模型对数据库进行实际查询。理论上,您可以插入一个新的资源模型,该模型可以从另一个数据库版本/包中读取,而无需更改基本模型类。太好了,谢谢!不管出于什么原因,我对资源模型交易感到困惑,哈哈。“模型”给了你逻辑模型(“获取电子邮件地址,获取标题等”),资源模型对数据库进行实际查询。理论上,您可以插入一个新的资源模型,该模型可以从另一个数据库版本/包中读取,而无需更改基本模型类。