Orm Magento-设置型号读取适配器时出现问题
我一直在学习艾伦·斯托姆的教程,但我遇到了一些问题。当我到达第一次从模型加载的部分时,我得到了这个错误“致命错误:对非对象调用成员函数load()…”。我已经重置了所有内容,并重新尝试,但我仍然遇到同样的问题。我的代码如下所示: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
$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,谢谢!不管出于什么原因,我对资源模型交易感到困惑,哈哈。“模型”给了你逻辑模型(“获取电子邮件地址,获取标题等”),资源模型对数据库进行实际查询。理论上,您可以插入一个新的资源模型,该模型可以从另一个数据库版本/包中读取,而无需更改基本模型类。太好了,谢谢!不管出于什么原因,我对资源模型交易感到困惑,哈哈。“模型”给了你逻辑模型(“获取电子邮件地址,获取标题等”),资源模型对数据库进行实际查询。理论上,您可以插入一个新的资源模型,该模型可以从另一个数据库版本/包中读取,而无需更改基本模型类。