我一直在我的application.ini文件中设置我的路由,它适用于我设置的所有路由。问题是,当控制器中有多个操作时,我尝试在其他操作中使用路由。
例如,我在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中创建自己的设置,但不起作用。我以前遇到过这个问题,但通常只是放弃,把东西分到不同的控制器中,但我宁愿有不同的操作。
任何帮助都将不胜感激。
哑光
发布于 2009-12-15 00:43:00
search/:page/:col/:sort/:limit/与www.mywebsite.com/search/action/2不匹配。您的路由将查找后跟表示页码的数字(\d)的search/;但是,您请求的是后跟字符串action的search/。我建议在路由中添加另一个参数:search/:action/:page/:col/:sort/:limit,将action默认设置为index。
请求默认操作的第一页保持不变(search)。请求默认路由的第2页现在将是search/index/2/,但您现在可以指定不同的操作(search/action/2)。
https://stackoverflow.com/questions/1901666
复制相似问题