私は過去2時間、この問題に苦労してきました。Zend Framework (V1) アプリケーションに正規表現ルートを追加しようとしています。私の他のルートは静的で、application.ini ファイルに保存されています。そこに新しい正規表現ルートを配置したいと考えています。
より複雑な正規表現ルートの作業を続ける前に、次の (作業中の) ルートを正規表現ルートに変換し始めました。
resources.router.routes.shift-display.route = /shift/display/:id
resources.router.routes.shift-display.defaults.module = shift
resources.router.routes.shift-display.defaults.controller = index
resources.router.routes.shift-display.defaults.action = display
これが私が思いついたものです:
resources.router.routes.shift-display.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.shift-display.regex = "shift/display/(\d+)"
resources.router.routes.shift-display.defaults.module = shift
resources.router.routes.shift-display.defaults.controller = index
resources.router.routes.shift-display.defaults.action = display
resources.router.routes.shift-display.map.1 = id
resources.router.routes.shift-display.reverse = "shift/display/%d"
しかし、それは機能していません。ルートがルーターに認識されていないようです。たとえば、開こうとするとvh.localhost/shift/display/7
「指定されたコントローラーが無効です(表示)」と表示されるため、ルーターはデフォルトルートを使用します。また、正規表現ルートの先頭にスラッシュを追加しようとしました。url-helper を使用して、新しい正規表現ルートを使用して (渡された ID パラメータを使用して) リンクを生成しようとしましたが、機能します。
誰にも手がかりがありますか?