Php Magento第三方模型覆盖

Php Magento第三方模型覆盖,php,magento,Php,Magento,我试图只覆盖第三方扩展模型的一部分(“Userprofile”功能),以包含更多的列和调用来检索新信息。以下是第三方config.xml: <models> <marketplace> <class>Webkul_Marketplace_Model</class> <resourceModel>marketplace_mysql4</resou

我试图只覆盖第三方扩展模型的一部分(“Userprofile”功能),以包含更多的列和调用来检索新信息。以下是第三方config.xml:

<models>
            <marketplace>
                <class>Webkul_Marketplace_Model</class>
                <resourceModel>marketplace_mysql4</resourceModel>
            </marketplace>
            <marketplace_mysql4>
                <class>Webkul_Marketplace_Model_Mysql4</class>
                <entities>
                    <product>
                        <table>marketplace_product</table>
                    </product>
                    <userprofile> 
                        <table>marketplace_userdata</table>
                    </userprofile>
                    <feedback> 
                        <table>marketplace_datafeedback</table>
                    </feedback>
                    <saleperpartner> 
                        <table>marketplace_saleperpartner</table>
                    </saleperpartner>
                    <saleslist> 
                        <table>marketplace_saleslist</table>
                    </saleslist>
                </entities>
            </marketplace_mysql4>
        </models>
<models>
            <zerobars_marketplacepayment>
                <class>ZeroBars_Marketplacepayment_Model</class>
       </zerobars_marketplacepayment>


          <marketplace>
               <rewrite>
                   <userprofile>ZeroBars_Marketplacepayment_Model_Userprofile</userprofile>
               </rewrite>
          </marketplace>
          <marketplace_mysql4>
              <rewrite>
                  <userprofile>ZeroBars_Marketplacepayment_Model_Mysql4_Userprofile</userprofile>
                   <userprofile_collection>ZeroBars_Marketplacepayment_Model_Mysql4_Userprofile_Collection</userprofile_collection>
              </rewrite>
          </marketplace_mysql4>

       </models>

Webkul_市场_模型
marketplace_mysql4
Webkul_市场_模型_Mysql4
市场与产品
市场用户数据
市场数据反馈
marketplace_saleperpartner
市场销售清单
下面是我自己的config.xml:

<models>
            <marketplace>
                <class>Webkul_Marketplace_Model</class>
                <resourceModel>marketplace_mysql4</resourceModel>
            </marketplace>
            <marketplace_mysql4>
                <class>Webkul_Marketplace_Model_Mysql4</class>
                <entities>
                    <product>
                        <table>marketplace_product</table>
                    </product>
                    <userprofile> 
                        <table>marketplace_userdata</table>
                    </userprofile>
                    <feedback> 
                        <table>marketplace_datafeedback</table>
                    </feedback>
                    <saleperpartner> 
                        <table>marketplace_saleperpartner</table>
                    </saleperpartner>
                    <saleslist> 
                        <table>marketplace_saleslist</table>
                    </saleslist>
                </entities>
            </marketplace_mysql4>
        </models>
<models>
            <zerobars_marketplacepayment>
                <class>ZeroBars_Marketplacepayment_Model</class>
       </zerobars_marketplacepayment>


          <marketplace>
               <rewrite>
                   <userprofile>ZeroBars_Marketplacepayment_Model_Userprofile</userprofile>
               </rewrite>
          </marketplace>
          <marketplace_mysql4>
              <rewrite>
                  <userprofile>ZeroBars_Marketplacepayment_Model_Mysql4_Userprofile</userprofile>
                   <userprofile_collection>ZeroBars_Marketplacepayment_Model_Mysql4_Userprofile_Collection</userprofile_collection>
              </rewrite>
          </marketplace_mysql4>

       </models>

ZeroBars_Marketplacepayment_模型
ZeroBars\U Marketplacepayment\U Model\U Userprofile
ZeroBars\u Marketplacepayment\u Model\u Mysql4\u用户配置文件
ZeroBars\u Marketplacepayment\u Model\u Mysql4\u Userprofile\u Collection
我已将所有Userprofile文档复制到我的模型结构中,与原始扩展中完全相同,只是用我自己的名称空间替换了“marketplace”名称空间:

<?php
class ZeroBars_Marketplacepayment_Model_Userprofile extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        parent::_construct();
        $this->_init('zerobars_marketplacepayment/userprofile');

    }

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

....

您打算通过模型文件重写自定义模型扩展名的模型文件中存在一些问题。我会注意到我现在看到的主要问题是什么

  • 模型扩展了错误的类

    您的模型类现在扩展类
    Mage\u Core\u model\u Abstract
    ,在您的情况下,这是错误的,您需要扩展
    Webkul\u Marketplace\u model\u Userprofile
    。这是因为您正在覆盖该类。因此,您的自定义类应该从这个类本身继承,这一点很重要

  • 引用错误的模型

    现在,模型收集由这个代码片段执行

      $collection = Mage::getModel('zerobars_marketplacepayment/userprofile')->getCollection();
    
    这告诉magento,嘿,magento我需要从model
    ZeroBars\u Marketplacepayment\u model\u Userprofile
    收集所有数据。这个方法肯定会引起错误,因为这个模型引用了您的模块,并且不包含任何集合、资源(我假设是这样)。因此,您可能需要使用

      $collection = Mage::getModel('marketplace/userprofile')->getCollection();
    
    现在,集合引用了
    Webkul\u Marketplace\u Model\u Userprofile
    ,它确实有一个集合,定义了资源。我还希望
    mageuserid
    由这个模块本身定义

  • 你能做什么

在您的问题中,您提到,您需要向自定义表添加一些额外的列字段。为此,您需要使用一些升级脚本。这里给出了一些参考。你可能会得到更多的教程


谢谢

在仔细查看之后,我突然想到可能需要在配置中添加相应的行。有没有关于如何做的好文章?非常感谢程序员!我确实写了一个升级脚本,它工作得很好,所以这一部分得到了处理。我缺少的最大一块是“扩展”部分。现在一切都好了,我欠你一杯虚拟咖啡什么的。:-)