【问题标题】:Zend_Controller_Router_Route_Regex and Pagination issueZend_Controller_Router_Route_Regex 和分页问题
【发布时间】:2013-04-18 05:28:27
【问题描述】:

我的英语不太好,很抱歉。

代码。

routers.ini:

routes.cat1.type = "Zend_Controller_Router_Route_Regex"
routes.cat1.route = "showcat/(\d+)-(\d+)"
routes.cat1.defaults.module = "default"
routes.cat1.defaults.controller = "category"
routes.cat1.defaults.action = "viewcategory"
routes.cat1.map.1 = "id1"
routes.cat1.map.2 = "page"
routes.cat1.reverse = "showcat/%d-%d"

当我访问时:

showcat/6

返回错误:Invalid controller specified (showcat)

但是当我访问时:

showcat/6-1

效果很好。

当我添加以下路由器来解决上述问题时:

routes.cat2.type = "Zend_Controller_Router_Route_Regex"
routes.cat2.route = "showcat/(\d+)"
routes.cat2.defaults.module = "default"
routes.cat2.defaults.controller = "category"
routes.cat2.defaults.action = "viewcategory"
routes.cat2.map.1 = "id1"
routes.cat2.reverse = "showcat/%d"

但是分页不起作用。

谁能帮我解决这个问题?

谢谢!

【问题讨论】:

    标签: php zend-framework pagination


    【解决方案1】:

    首先,我会使用正斜杠而不是破折号:

    routes.cat2.route = "showcat/(\d+)/(\d+)"

    但是,无论哪种情况,您的正则表达式都需要知道第二个语句是否不存在,所以:

    routes.cat2.route = "showcat/(\d+)(?:/(\d+))?"

    或者,用破折号:

    routes.cat2.route = "showcat/(\d+)(?:-(\d+))?"

    注意问号 - 表示该项目是否必须存在。

    记得为路由中的第二个参数设置默认值:

    routes.cat2.route.defaults.2 = 1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-05
      • 2012-02-01
      • 2011-06-04
      • 2021-06-28
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多