Man*_*ngh 5 php routes codeigniter
我正在使用Codeigniter 3.x,使用routes.php我想创建动态路由,例如我有一个类名Class1.
我想要输出网址
mysite.com/Class1-Student-Search
但是使用连字符( - )不起作用
如果我放斜杠(/),它可以工作,
$route['(:any)/Student-Search'] = "search";
Run Code Online (Sandbox Code Playgroud)
它返回
mysite.com/Class1/Student-Search
并使用下划线(_)也可以工作.
$route['(:any)_Student-Search'] = "search";
Run Code Online (Sandbox Code Playgroud)
回报
mysite.com/Class1_Student-Search
但我想使用连字符( - ),如果我把它,它将转到404错误页面,我使用这四个解决方案,但不适合我.
$route['(:any)-Student-Search'] = "search";
$route['([a-zA-Z]+)-Student-Search'] = "search";
$route['([a-zA-Z-0-9]+)-Student-Search'] = "search";
$route['(.*)-Student-Search'] = "search";
Run Code Online (Sandbox Code Playgroud)
如果我硬编码路线中的值
$route['Class1-Student-Search'] = "search";
Run Code Online (Sandbox Code Playgroud)
然后它也工作
您试图创建一个动态路由,这在Codeigniter中是不可能的,如果您看到以下 Codeigniter 流程图,您就会明白我的意思。
你也可以在codeigniter官方网站上看到这个图表
当您尝试重定向或调用某个网址时,它的工作原理如下
每个请求首先都会路由到那里,因为你无法使其动态化