magento:覆盖Mage_CatalogSearch_Model_Query以无效方法prepareResult结束

时间:2016-01-19 12:32:00

标签: magento magento-1.9

我尝试覆盖Mage_CatalogSearch_Model_Query。

现在我尝试尽可能少地做到这一点:

将重写块添加到config.xml

<config>
...
  <global>
    <models>
      ...
      <catalogsearch>
        <rewrite>
          <fulltext>MyCompany_CatalogSearch_Model_Query</fulltext>
        </rewrite>
      </catalogsearch>
    </models>
  </global>
</config>

添加我的课程

    <?php

    class MyCompany_CatalogSearch_Model_Query extends Mage_CatalogSearch_Model_Query
    {
    }

但是我

  

无效方法MyCompany_CatalogSearch_Model_Query :: prepareResult(Array   (   )   )

我没有提供任何prepareResult,但是当我不覆盖Query类时,它正在工作,所以我应该继承这个方法,我想?

我做错了什么?

1 个答案:

答案 0 :(得分:2)

看起来你正在尝试重写Mage_CatalogSearch_Model_Fulltext类,而不是Mage_CatalogSearch_Model_Query类。这引发了这个问题。

调用catalogsearch / fulltext时,应该使用prepareResult方法,该方法在catalogsearch / query中不存在。

如果您的目标是重写catalogsearch / query,请以这种方式重写配置:

  <catalogsearch>
    <rewrite>
      <query>MyCompany_CatalogSearch_Model_Query</query>
    </rewrite>
  </catalogsearch>

如果您的目标是重写Mage_CatalogSearch_Model_Fulltext类,请按以下方式执行:

class MyCompany_CatalogSearch_Model_Query extends Mage_CatalogSearch_Model_Fulltext
    {
    }

希望它有所帮助。 :)