8

我试图重写 Mage_Review_Model_Resource_Review_Summary_Collection。模块被激活。折叠结构与核心审查中的相同。

问题应该在xml中。

我的xml是:

<?xml version="1.0"?>
<config>
<modules>
    <LM_Review>
        <version>0.1.0</version>
    </LM_Review>
</modules>

<frontend>
    <routers>
        <review>
            <args>
                <modules>
                    <lm_review before="Mage_Review">LM_Review</lm_review>
                </modules>
            </args>
        </review>
    </routers>

    <layout>
        <updates>
            <lm_review>
                <file>lm/review.xml</file>
            </lm_review>
        </updates>
    </layout>

    <translate>
        <modules>
            <LM_Review>
                <files>
                    <default>LM_Review.csv</default>
                </files>
            </LM_Review>
        </modules>
    </translate>
</frontend>

<global>
    <models>
        <review_resource>
            <rewrite>
                <review_summary_collection>LM_Review_Model_Resource_Review_Summary_Collection</review_summary_collection>
            </rewrite>
        </review_resource>
    </models>
</global>
</config>

etc/modules 中的 LM_All.xml

<LM_Review>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Review />
            </depends>
</LM_Review>

app/code/local/LM/Review/Model/Resource/Review/Summary/Collection.php 中的 Collection.php

class LM_Review_Model_Resource_Review_Summary_Collection extends Mage_Review_Model_Resource_Review_Summary_Collection {

   public function addStoreFilter($storeId) {
      die('test');
   }

}
4

2 回答 2

6

您的 XML 是正确的。有了上面的 XML,如果你调用工厂方法

Mage::getResourceModel('review/review_summary_collection') 

Magento 将尝试实例化一个

LM_Review_Model_Resource_Review_Summary_Collection

这意味着

  1. Magento 看不到您的模块(没有app/etc/module文件,或文件处于非活动状态,或文件指向错误的代码池)

  2. LM/Review/Model/Resource/Review/Summary/Collection.php您的代码池中没有文件

  3. 中定义的类Collection.php不是LM_Review_Model_Resource_Review_Summary_Collection

  4. 中定义的类Collection.php不扩展Mage_Review_Model_Resource_Review_Summary_Collection

  5. 检查类名和路径名的拼写和大写/小写。这对 Magento 很重要。

于 2013-04-09T17:17:53.117 回答
3

我发现了问题。它需要将资源模型添加到 xml 而不仅仅是重写它。

<global>
    <models>
        <review>
            <resourceModel>review_resource</resourceModel>
        </review>
        <review_resource>
            <rewrite>
                <review_summary_collection>LM_Review_Model_Resource_Review_Summary_Collection</review_summary_collection>
            </rewrite>
        </review_resource>
    </models>
</global>
于 2013-04-10T09:11:08.523 回答