Magento致命错误:在非对象上调用成员函数addFieldToFilter()

时间:2014-06-19 02:42:11

标签: php magento model

我试图覆盖第三方扩展中的模型,因此我可以在它使用的数据库表中添加更多列并对其进行操作。我在config.xml中添加了以下内容:

<marketplace>
     <rewrite>
         <userprofile>ZeroBars_Marketplacepayment_Model_Userprofile</userprofile>
     </rewrite>
</marketplace>

并将Userprofile.php文件复制到我模块的Model文件夹中。 Userprofile中的代码调用我覆盖的先前模型的集合:

public function getPartnerProfileById($partnerId) {
        $data = array();
        if ($partnerId != '') {
            $collection = Mage::getModel('marketplace/userprofile')->getCollection();
            $collection->addFieldToFilter('mageuserid',array('eq'=>$partnerId));

...

现在我已拨打Fatal Error来拨打addFieldToFilter。我也试过复制Mysql4中的文件,但我不知道如何在配置中为它们添加覆盖。我怎么能搞清楚出了什么问题呢?

1 个答案:

答案 0 :(得分:1)

KRay,要获得表格的集合,那么您需要为该模型定义集合

我需要获取该模块的类集合文件,该文件是获取表的所有数据

收集文件路径是Collection.php app / code / yourcodePOol / your pakkage name / Modulename / Model / Resource / Userprofile /

<?php
class YourPackagename_Modulename_Model_Resource_Userprofile_Collection
extends Mage_Core_Model_Resource_Db_Collection_Abstract{
    protected function _constuct(){
        $this->_init('marketplace/userprofile');    
    }
}

如果您使用mysql4作为资源模型,请尝试

   <?php
    class YourPackagename_Modulename_Model_Mysql4_Userprofile_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
    {
        public function _construct()
        {
            $this->_init('marketplace/userprofile');
        }
    }