1

管理コントローラーを追加しました。このコードは正しく動作します:

    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <mycompany_mymodule>Mycompany_Mymodule_Adminhtml</mycompany_mymodule >
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>

mycompany_mymodule に before="Mage_Adminhtml" を追加すると:

<mycompany_mymodule before="Mage_Adminhtml">Mycompany_Mymodule_Adminhtml</mycompany_mymodule >

その後、機能しません-404エラーが発生しました。

1. このオプションは何をしますか?

また、私はアランの嵐の記事を調べました: http://alanstorm.com/magento_admin_controllers 例があります:

<config>
    <!-- ... -->
    <admin>
        <routers>
            <the_name_of_this_element_is_not_important_it_should_be_unique>
                <use>admin</use>
                <args>
                    <module>Alanstormdotcom_Adminhelloworld</module>
                    <frontName>adminhelloworld</frontName>
                </args>
            </the_name_of_this_element_is_not_important_it_should_be_unique>
        </routers>
    </admin>
    <!-- ... -->        
</config>

2. これらの定義の違いは何ですか?

4

1 に答える 1

3

それは解決しました:

メソッドが定義されているMage_Core_Controller_Varien_Router_Standardクラスを見つけました。collectRoutes()「後」および「前」パラメーターを解析して、モジュールを順序付けます。

このメソッドは ( のメソッドからMage_Core_Controller_Varien_Router_Admin開始) から呼び出しています。initMage_Core_Controller_Varien_Front

そのため、 で一致プロセスを調べた後Mage_Core_Controller_Varien_Router_Standard

デバッグした後Mage_Core_Controller_Varien_Router_Standard、私は自分の過ちを理解しました。

  1. の代わりに Index コントローラーを使用しMyModuleContollerました。

  2. Alan Storm は、管理モジュール (つまり、adminhtml)の下にないコントローラーを定義しました。最初の構成を使用すると、セクションadminhtmlの下に新しいモジュールを定義したため、完璧に機能します。Alan の設定では、自分のモジュールを adminhtml に追加できません。オーバーライドできますが、adminhtml の下の他のモジュールが削除されるため、正しくありません。

これは、以下のメニューの正しいコードですadminhtml:

    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <mycompany_mymodule after="Mage_Adminhtml">Mycompany_Mymodule_Adminhtml</mycompany_mymodule >
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>

Inhoo は、この構成についてもここで説明しています。

于 2012-08-26T01:56:42.387 に答える