2009-12-14 131 views
0

我一直在我的application.ini文件中設置我的路由,它適用於我設置的所有路由。問題是當控制器中有多個動作時,我嘗試在其他動作中使用路由。Zendframework路由問題

比如我已經創建了我的application.ini分頁和列排序

resources.router.routes.search.route = "search/:page/:col/:sort/:limit/" 
resources.router.routes.search.defaults.controller = search 
resources.router.routes.search.defaults.page = 1 
resources.router.routes.search.defaults.col = time 
resources.router.routes.search.defaults.sort = default 
resources.router.routes.search.defaults.limit = 50 
resources.router.routes.search.reqs.page = \d+ 
resources.router.routes.search.reqs.col = \w+ 
resources.router.routes.search.reqs.sort = \w+ 
resources.router.routes.search.reqs.limit = \d+ 

上述工作如下,當我在該頁面的像

www.mywebsite.com/search/2/ 

的默認操作會帶來結果的第二頁。但是如果我在另一個動作上嘗試相同的話,

www.mywebsite.com/search/action/2 

它只是顯示一個空白頁。我嘗試在ini中創建自己的設置,但沒有奏效。我以前遇到過這個問題,但通常只是放棄並將事情分成不同的控制器,但我寧願有不同的操作。

任何幫助將不勝感激。

馬特

回答

0

search/:page/:col/:sort/:limit/不匹配www.mywebsite.com/search/action/2。您的路線是尋找search/後跟一個數字(\d),表示頁碼;但是,您要求search/後跟字符串action。我建議在您的路線中添加另一個參數:search/:action/:page/:col/:sort/:limit,默認actionindex

請求默認操作的第一頁保持不變(search)。現在請求默認路由的第2頁現在是search/index/2/,但現在可以指定不同的操作(search/action/2)。

+0

感謝您的意見,我已經嘗試過,但結果已達到相同的結果。有趣的是我再次搜索,它會默認到第二頁,但是當url params在那裏時,頁面將不會加載。我幾乎要將它分離到它自己的控制器。我擁有的唯一其他路由類似,但用於不同的控制器。是否有更好的方法來實現跨所有控制器和操作的分頁? – 2009-12-15 20:45:48

+0

下面是我最近嘗試基於另一篇文章,我發現,但它仍然無法正常工作。最奇怪的是,如果我在那個頁面上搜索,然後點擊分頁,它會出現空白,但如果我再次搜索它默認第二頁,因爲它可以讀取瀏覽器中的參數,由於某種原因。我將在我的application.ini的下面添加我的其他部分,因爲我在這個評論中的空間不足 – 2009-12-16 16:30:30

+0

resources.router.routes.searchadvanced.route =「search/advanced /:page /:limit /」 resources.router.routes.searchadvanced.defaults.controller =搜索 resources.router.routes.searchadvanced.defaults.action = advanced resources.router.routes.searchadvanced.defaults。頁= 1個 resources.router.routes.searchadvanced.defaults.limit = 25 resources.router.routes.searchadvanced.reqs.page = \ d + resources.router.routes.searchadvanced.reqs.limit = \ d + 的發佈給我這個想法 http://stackoverflow.com/questions/1850558/php-zend-route-config-ini-similar-patterns – 2009-12-16 16:31:01

0

原來我完全忘了爲搜索項設置變量。當在一個新頁面上時,它並沒有保留原來的搜索字詞,而我的代碼就是在做它假設的內容,而不顯示任何輸出。

對於那些認爲自己遇到類似問題的人,他們可能會發現此鏈接非常有幫助。

link text