1

class などの 1 つのメソッドで 1 行のコードを変更したいと考えていますMage_Reports_Model_Resource_Product_Collection。最も簡単な方法は、クラス ファイル全体を にコピーすることのようですが、メソッドをオーバーライドするのではなく、元のクラスapp/code/local/...置き換えました。

Mage_Reports_Model_Resource_Product_Collectioneg から継承し、 1 つのメソッドのみをオーバーライドする新しいクラスを作成するにはどうすればよいですか? それでも、元のクラスの代わりに新しいクラスを使用するように Magento に指示します。

4

2 に答える 2

1

製品コレクションを書き直す作業コードは次のとおりです。

<global>
    <models>
        <reports_resource>
            <rewrite>
                <product_collection>Company_ModelName_Model_Resource_Product_Collection</product_collection>
            </rewrite>
        </reports_resource>
    </models>
</global>

Mage::getResourceModel('reports/product_collection')通話で機能するはずです。

ええ、私は<config>タグを含めていません。すでに 1 つでもあるはず<global>なので、必要ないと感じました。

于 2012-09-26T11:11:01.007 に答える
0

理論的には、モデルの書き換えは...

<config>
    <global>
        <models>
            <reports>
                <rewrite>
                    <resource_product_collection>Namespace_Extension_Model_Resource_Product_Collection</resource_product_collection>
                </rewrite>
            </reports>
        </models>
    </global>
</config>

ただし、私はリソース モデルを個人的に書き直したことがないので、うまくいくとは断言できません。コレクションがどのように読み込まれるかによって大きく異なります。

于 2012-09-26T10:04:17.043 に答える