Magento重写核心模型资源集合

时间:2013-04-09 15:47:04

标签: magento rewrite

我试图重写Mage_Review_Model_Resource_Review_Summary_Collection。 模块已激活。 folde结构与核心评论相同。

问题应该在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>

中的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');
   }

}

2 个答案:

答案 0 :(得分: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很重要。

答案 1 :(得分: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>