2009-12-14 81 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