我试图重写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>
Run Code Online (Sandbox Code Playgroud)
etc/modules中的LM_All.xml
<LM_Review>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Review />
</depends>
</LM_Review>
Run Code Online (Sandbox Code Playgroud)
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');
}
}
Run Code Online (Sandbox Code Playgroud)
你的XML是正确的.如果你使用上面的XML,你可以调用工厂方法
Mage::getResourceModel('review/review_summary_collection')
Run Code Online (Sandbox Code Playgroud)
Magento将尝试实例化一个
LM_Review_Model_Resource_Review_Summary_Collection
Run Code Online (Sandbox Code Playgroud)
这意味着
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很重要.
我发现了问题。需要将资源模型添加到 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>
Run Code Online (Sandbox Code Playgroud)