0

私は Zend Framework の初心者です。Zend のルーターとモジュラーに問題があります。フレンドリーな URL 書き換えでルーティングする router.ini があります。

routers.prod-cat-details.type           = Zend_Controller_Router_Route_Regex
routers.prod-cat-details.route          = "([a-zA-Z0-9\-]+)/*([a-zA-Z0-9\-]+)/*([a-zA-Z0-9\-]+)\.html"
routers.prod-cat-details.defaults.module         = "default"
routers.prod-cat-details.defaults.controller    = "products"
routers.prod-cat-details.defaults.action         = "detail"
routers.prod-cat-details.map.1          = "uri_cat_level0"
routers.prod-cat-details.map.2          = "uri_cat"
routers.prod-cat-details.map.3          = "uri"


routers.prod-cat-parent.type            = Zend_Controller_Router_Route_Regex
routers.prod-cat-parent.route           = "([a-zA-Z0-9\-]+)/*([a-zA-Z0-9\-]+)"
routers.prod-cat-parent.defaults.module         = "default"
routers.prod-cat-parent.defaults.controller     = "products"
routers.prod-cat-parent.defaults.action         = "category"
routers.prod-cat-parent.map.1           = "uri_cat_level0"
routers.prod-cat-parent.map.2           = "uri_cat"


routers.prod-cat.type           = Zend_Controller_Router_Route_Regex
routers.prod-cat.route          = "([a-zA-Z0-9\-]+)"
routers.prod-cat.defaults.module        = "default"
routers.prod-cat.defaults.controller    = "products"
routers.prod-cat.defaults.action        = "category"
routers.prod-cat.map.1          = "uri_cat"

ルーターを使用しない場合 (Boottrap でルーターをセットアップしない場合)、私のコードはモジュールに分割されます。モジュール zend (exp: localhost/admin -> go to admin module) を使用できますが、ルートをアクティブにする場合 -> localhost /admin -> 「製品」コントローラの「カテゴリ」アクションに移動

この問題の解決を手伝ってください。よろしくお願いします(下手な英語でごめんなさい:D)

4

1 に答える 1

0

/adminあなたの問題は、あなたが提供した正規表現パターンが任意の文字列に一致するため、「prod-cat」ルートがリクエストに一致することです。そのルートにいくつかの制限を加えて一致するものを絞り込むか、その下にいくつかの静的ルートを配置して、他のコントローラーに移動したい /admin などの特定のページに一致させる必要があります。

この質問に対する回答を参照してください: Zend Routing problemsについては、ZF でルーティングがどのように機能するかについて、もう少し背景を説明してください。

于 2012-04-15T22:26:54.053 に答える