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

时间:2010-08-19 19:39:07

标签: orm frameworks model magento

我正在关注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

app/code/local/Ahathaway/Weblog/Model/Blogpost.php

app/etc/modules/Ahathaway_Weblog.xml

3 个答案:

答案 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');
    }   
}