我试图重写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');
}
}
答案 0 :(得分:6)
您的XML是正确的。使用上面的XML,如果你进行工厂方法调用
Mage::getResourceModel('review/review_summary_collection')
Magento将尝试实例化
LM_Review_Model_Resource_Review_Summary_Collection
这意味着
Magento无法看到您的模块(没有app/etc/module
文件,或文件处于非活动状态,或文件指向错误的代码池)
您的代码池中LM/Review/Model/Resource/Review/Summary/Collection.php
没有文件
Collection.php
中定义的课程不是LM_Review_Model_Resource_Review_Summary_Collection
Collection.php
中定义的类不会延伸Mage_Review_Model_Resource_Review_Summary_Collection
检查类和路径名的拼写和大/小写。这对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>