路由中uri slug的codeigniter正则表达式
Posted
技术标签:
【中文标题】路由中uri slug的codeigniter正则表达式【英文标题】:codeigniter regular expression for uri slug in routes 【发布时间】:2012-08-08 08:01:55 【问题描述】:我想从控制器 my_controller 调用一个函数,将两个参数传递给 some_method:第一个参数是 slug(即 some-website-slug);第二,一个数字。这就是我正在尝试的:
$route['my_controller/([a-z0-9]+(-[a-z0-9]+)*)/(:num)'] = "my_controller/some_method/$1/$2";
问题是,它总是传入“-slug”(即 slug 字符串的最后一部分)而不是数字。所以例如与
base_url/my_controller/some-uri-slug/2
它将传入“-slug”而不是数字 2。正则表达式有问题还是 CI 有问题?
【问题讨论】:
试试$3
而不是$2
酷,如果您想标记为正确,我将其作为答案发布。
您可以使用 rubular.com 来测试您的表达方式。
【参考方案1】:
你的正则表达式有两对()
,所以(:num)
实际上是$3
而不是$2
。
【讨论】:
以上是关于路由中uri slug的codeigniter正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
025.CI4框架CodeIgniter, URI路由功能之在Routes中添加分组路由