Magento模型不工作
我遵循这个教程 根据本教程,当我用url传递一个值时(http://localhost/dev/weblog/index/testModel/id/1),我得到了这样的错误Magento模型不工作,magento,Magento,我遵循这个教程 根据本教程,当我用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 cl
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);
}
}
1.0.0
Srivats_Weblog_Model_Mysql4
weblog_mysql4
标准
我认为这一行$blogpost->load($params['id'])代码>造成麻烦。我缺少什么。有什么指针吗?你真正的问题是这行代码:
$blogpost = Mage::getModel('weblog/blogpost');
没有返回对象,因此$blogpost仅为NULL
blogpost模型类文件是否在您应该拥有的配置中的app/code/local/Srivats/Weblog/model/blogpost.php中实际创建
<global>
<models>
<weblog>
<class>Srivats_Weblog_Model</class>
<resourceModel>weblog_mysql4</resourceModel>
</weblog>
</model>
</global>
Srivats_Weblog_模型
weblog_mysql4
您已经为mysql4资源添加了这个。你应该
<models>
<weblog>
<class>Srivats_Weblog_Model</class>
<resourceModel>weblog_mysql4</resourceModel>
</weblog>
<weblog_mysql4>
<class>Srivats_Weblog_Model_Mysql4</class>
</weblog_mysql4>
</models>
Srivats_Weblog_模型
weblog_mysql4
Srivats_Weblog_Model_Mysql4
@Simon他尝试加载模型的方式需要位于我指定路径中的文件。该配置反过来指定了一个资源模型,该模型应使用Mage::getResourceModel()加载。。。是的,我们应该知道路径是区分大小写的。@ElGabbu LOL是的,现在这是对的。但在您的第一个版本中,路径实际上是错误的…@Nasaralla:您的答案非常有用。但仍然是相同的错误。我已上载文件供您参考。@Alan Storm:否:)weblog节点的类引用不应包括“\u Blogpost”。另外,不需要在资源模型节点(weblog_mysql4)中指定资源模型。。。它应该是'Srivats_Weblog_Model'@Nasaralla:我差一点就找到了。但还是有错误。致命错误:调用未定义的方法Srivats_Weblog_Model_Mysql4_Blogpost::getData()在第13行的app\code\local\Srivats\Weblog\controllers\IndexController.php中。
您可以看到问题中的文件链接,为了获取资源上的数据,您需要创建一个集合,即添加一个文件夹Srivats/Weblog/Model/Mysql4/Blogpost并在其中添加collection.php。集合签名应该是Srivats_Weblog_Model_Mysql4_Blogpost_集合,_构造将具有$this->_init('Weblog/Blogpost');然后在控制器上执行Mage::getResourceModel('weblog/blogpost_collection');
<global>
<models>
<weblog>
<class>Srivats_Weblog_Model</class>
<resourceModel>weblog_mysql4</resourceModel>
</weblog>
</model>
</global>
<models>
<weblog>
<class>Srivats_Weblog_Model</class>
<resourceModel>weblog_mysql4</resourceModel>
</weblog>
<weblog_mysql4>
<class>Srivats_Weblog_Model_Mysql4</class>
</weblog_mysql4>
</models>