Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento模型不工作_Magento - Fatal编程技术网

Magento模型不工作

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

我遵循这个教程

根据本教程,当我用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);
    }
}

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>