この質問のタイトルは思いつきにくいですが、とにかくそれが最良ではないかもしれません。Zend Framework:完全に動的なルートをマップする方法
私は地域、カテゴリとサプライヤーとのサイトを持って、明白な解決策は、私のURLは、この
"/region/midlands/category/fashion"
"/region/midlands/supplier/ted-baker"
ようになりますように
"/:module/:controller/:action"
のデフォルトルートを使用することです私これを実現するためにはURLフォーマットが必要ですが、これはデータベースクエリを使用して存在を確認する必要があります。midlands
、fashion
、ted-baker
"/midlands/fashion"
"/midlands/ted-baker"
私のオリジナルのソリューションは、
routes.category.route = "/region/:region/:category"
routes.category.defaults.controller = category
routes.category.defaults.action = index
routes.category.defaults.module = default
routes.category.defaults.category = false
routes.category.defaults.region = false
routes.supplier.route = "/supplier/:supplier"
routes.supplier.defaults.controller = supplier
routes.supplier.defaults.action = index
routes.supplier.defaults.module = default
routes.supplier.defaults.supplier = false
として定義されたルートでは、この
"/region/midlands/fashion"
のようなものを使用することでした。しかし、それはregion
またはsupplier
ですべてを接頭辞を意味します。私はプラグインでリクエストを完全にハイジャックする必要がほとんどありますか?
これを達成する最良の方法は何ですか?
ありがとうございました。
編集。 St.Woland @
、問題は、私はこのルート
/:region/:supplier
はこのURL
/midlands/ted-baker
で作業したいが、そのルートは、効果的にデフォルトルータ
こんにちはSt.Woland、問題はルートの追加ではありません。それは、複数の動的ルートを持つ能力をどのように処理すべきかと関係しています。質問の編集を参照してください。 –
すべてのルートは、設定した順序とは反対の順序で集計されます。したがって、あなたのルートがデフォルトルートの後に与えられた場合、最初にマッチします。あなたの望むものがはっきりしないので、それらに合致するすべての経路とURLの例を挙げてください。ありがとう。 –