2014-02-13 56 views
2

我一直在過去2個小時裏一直在解決這個問題。我試圖添加一個正則表達式路由到我的Zend Framework(V1)應用程序。我的其他路由是靜態的,並存儲在我的application.ini文件中,那就是我想要放置一些新的正則表達式路由的地方。Zend正則表達式在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參數),並且它可以工作。

任何人都有線索?

回答

1

有時候就是這麼簡單。當definining路線,錯誤是在該行提出:

resources.router.routes.shift-display.regex = "shift/display/(\d+)" 

它必須是白白

resources.router.routes.shift-display.route = "shift/display/(\d+)" 

4小時。但至少我終於找到了它;-)