根据本教程,当我传递一个带有url的值(http:// localhost / dev / weblog / index / testModel / id / 1)时,我会收到这样的错误
Fatal error: Call to a member function load() on a non-object in app\code\local\Srivats\Weblog\controllers\IndexController.php on line 10
这是我的索引控制器代码
<?php
class Srivats_Weblog_IndexController extends Mage_Core_Controller_Front_Action
{
public function testModelAction()
{
$params = $this->getRequest()->getParams();
$blogpost = Mage::getModel('weblog/blogpost');
echo("Loading the blogpost with an ID of ".$params['id']);
$blogpost->load($params['id']);
$data = $blogpost->getData();
var_dump($data);
}
}
Blogpost.php文件
<?php
class Srivats_Weblog_Model_Mysql4_Blogpost extends Mage_Core_Model_Mysql4_Abstract
{
protected function _construct()
{
$this->_init('weblog/blogpost','blogpost_id');
}
}
这是我的配置文件
<?xml version="1.0" encoding="utf-8"?>
<config>
<global>
<modules>
<srivats_weblog>
<version>1.0.0</version>
</srivats_weblog>
</modules>
<models>
<weblog_mysql4>
<class>Srivats_Weblog_Model_Mysql4</class>
<resourceModel>weblog_mysql4</resourceModel>
</weblog_mysql4>
</models>
</global>
<frontend>
<routers>
<weblog>
<use>standard</use>
<args>
<module>Srivats_Weblog</module>
<frontName>weblog</frontName>
</args>
</weblog>
</routers>
</frontend>
</config>
system.log显示
警告:include()[function.include]: 无法打开'Mage \ Weblog \ Model \ Blogpost.php'以包含在内 (include_path中= '应用程序\代码\本地; E:\ dev的\应用\代码\社区;应用\代码\芯; E:\ dev的\ lib中; C:\ PHP中\梨') 在第93行的lib \ Varien \ Autoload.php中
以下是所有文件https://gist.github.com/cf99e4277599954f38d4的链接
我认为这一行$blogpost->load($params['id']);
造成了麻烦。我错过了什么。有什么指针吗?
答案 0 :(得分:3)
啊,在你配置中你应该有
<global>
<models>
<weblog>
<class>Srivats_Weblog_Model</class>
<resourceModel>weblog_mysql4</resourceModel>
</weblog>
</model>
</global>
你已经为mysql4资源添加了这个。你应该
<models>
<weblog>
<class>Srivats_Weblog_Model</class>
<resourceModel>weblog_mysql4</resourceModel>
</weblog>
<weblog_mysql4>
<class>Srivats_Weblog_Model_Mysql4</class>
</weblog_mysql4>
</models>
答案 1 :(得分:0)
你真正的问题是这一行:
$blogpost = Mage::getModel('weblog/blogpost');
没有返回一个对象,因此$ blogpost只是NULL。
blogpost模型类文件是否实际在app/code/local/Srivats/Weblog/Model/Blogpost.php