0

Magento で最初のモジュールを作成しようとしています。

私ができないことは、私が望む方法でモジュールのルートを定義することです。

"gateways/iphone" というルートを作成したいのですが、うまくいきません。ルート定義で「/」を使用することはできますか?

これは私のモジュール定義です:

<?xml version="1.0" encoding="UTF-8"?>
<config>    
    <modules>
        <Nacho_GatewayIphone>
            <version>0.1.0</version>
        </Nacho_GatewayIphone>
    </modules>
    <frontend>
        <routers>
            <nacho_gatewayiphone>
                <use>standard</use>
                <args>
                    <module>Nacho_GatewayIphone</module>
                    <frontName>gateway_iphone</frontName>
                </args>
            </nacho_gatewayiphone>
        </routers>  
    </frontend>
</config>

/gateway_iphone では正常に動作していますが、 /gateways/iphone をヒットしようとしたときに<frontName>値をに変更する<frontName>gateways/iphone</frontName>と、実行されません。

ルーター定義で「/」文字を使用することはできますか?

4

3 に答える 3

2

Magento は URL を解析して get を取得するため、上記の構造に違反するため、ルーターを/router/controller/actionで実際に指定することはできません。

答えは簡単ですが、ゲートウェイをルーターとして指定し、iphoneをコントローラーとして指定してみませんか? モジュール用のコントローラーが引き続き必要になるため、 を作成する代わりに、 をルーターとしてIndexController作成IphoneControllerし、URL で必要になることができます。gatewaysgateways/iphone

于 2012-09-28T06:48:34.557 に答える
1

さらに複雑な URL が必要な場合は、正規表現ベースの書き換え方法があります。たとえば、config.xml に以下を追加できます。

<global>
    <rewrite>
        <nacho_gatewayiphone_example>
            <from><![CDATA[#^/such/a/long/example/for/an/url/path/#]]></from>
            <!-- Assuming that "gateways" is now the frontName -->
            <to>/gateways/example_controller_name/</to>
        </nacho_gatewayiphone_example>
        <!-- Other rewrites for nacho here -->
    </rewrite>
</global>

詳細については、この wikiを参照してください。詳細については、このブログを参照してください。

于 2012-09-28T11:11:20.387 に答える
-1

Nacho_GatewayIphoneモジュールの名前を からに変更する必要がありますNacho_Gateway_Iphone

フォルダー構造とクラス名に必要な調整を行います。

于 2012-09-28T05:50:21.187 に答える