我正在关注Magento's Model and ORM basics的Alan Storm的教程,我遇到了一些问题。当我第一次到达我从模型加载的部分时,我收到此错误“致命错误:在非对象上调用成员函数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()的代码没有正确安装。
编辑 - 添加代码
有这么多我刚刚决定将它们粘贴起来lol
app/code/local/Ahathaway/Weblog/controllers/IndexController.php
app/code/local/Ahathaway/Weblog/etc/config.xml
答案 0 :(得分:2)
您的Model / Blogpost.php文件实际上应该是Model / Mysql4 / Blogpost.php,而您缺少真正的Model / Blogpost.php。
答案 1 :(得分:1)
我的猜测是法师无法找到你的模特课。仔细检查模块/型号名称,并验证模型是否在文件系统中的正确位置(它应该在app / code / local / Weblog / Model / Blogpost.php中)。
您还需要检查config.xml是否正确定义了模型类。如果您可以通过config.xml和模型类,那将是最好的......
答案 2 :(得分:1)
快速浏览一下就会发现你错过了模型资源。返回以下代码示例
的部分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');
}
}