0

コア AccountController.php を拡張しようとしています -> app/code/core/Mage/Customer はそれを app/code/local/Mage/ にコピーし、ログを追加してどれが適切に拡張されているかを確認します。

In the file AccountController.php (app/code/local/Mage/Customer/controllers)
...
...
public function createPostAction() {
        Mage::log('In app/code/local/Mage/', null, 'test.log', true);
...
...

AND CORE (only test)
In the file AccountController.php (app/code/core/Mage/Customer/controllers)
...
...
public function createPostAction() {
        Mage::log('In app/code/core/Mage/', null, 'test.log', true);
...
...

コード/ローカル/メイジではなく、CORE を使用します。何かを設定する必要がありますか、それとも失敗しますか?

4

2 に答える 2

2

コントローラー クラス定義が読み込まれるロジックは、オートローダーが依存する明示的なインクルード パスの上にファイルへのパスを構築します。これは、ローカルとコアの優先順位がないことを意味します。

xpathの下のディレクトリを指定して、コントローラーの書き換えを作成する必要がありますfrontend/routers/customer/args/modules/your_module

後者のノードにはbeforeアトリビュートを に設定する必要があり、メソッドMage_Customerを使用して を作成する必要があります。必要に応じて、コア アカウント コントローラー クラスから拡張して必要とする必要がある場合とそうでない場合があります。AccountController.phpcreatePostAction()

于 2013-07-12T09:57:00.427 に答える
1

元のコントローラーを必要とする必要があると思います:

require_once Mage::getModuleDir('controllers', 'Mage_Customer').DS.'AccountController.php';

通常、コントローラーをxmlの方法で書き換えてこれを行う必要があります...コードをチェックインしていませんが、これが問題かもしれません。

config.xml を介して通常の方法で行うことをお勧めします

http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/how_to_overload_a_controller

于 2013-07-11T15:11:25.850 に答える