我使用Codeigniter 3.x,使用 routes.php 我想创建动态路由,例如我有一个类名<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="showCont1">
<div id="showmore1">
</div>
</div>
<div id="showCont2">
<div id="showmore2">
</div>
</div>
<div id="showCont3">
<div id="showmore3">
</div>
</div>
。
我想要输出网址
mysite.com/Class1-Student-Search
但是使用连字符( - )不起作用
如果我放斜杠(/),它就可以了,
Class1
它返回
mysite.com/Class1/Student-Search
并使用下划线(_)也可以。
$route['(:any)/Student-Search'] = "search";
返回
mysite.com/Class1_Student-Search
但我想使用连字符( - ),如果我把它,它将转到404错误页面,我使用这四种解决方案但不适合我。
$route['(:any)_Student-Search'] = "search";
如果我对路线中的值进行硬编码
$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";
然后它也在工作
答案 0 :(得分:2)
如果你看到codeigniter的以下流程图你理解我的意思,你试图创建一个在 codeigniter 中无法实现的动态路由。
您也可以在codeigniter官方website
中看到此图表当您尝试重定向或调用某个网址时,它会像这样工作
每个请求首先在那里进行路由,因为您无法使其成为动态
答案 1 :(得分:-1)
这是我的解决方案,它适用于我,喜欢这样。
$route['(:any)-Student-Search'] = "search";
然后在你的链接按钮中,希望在你的视图中,href这样的链接。
href="/<?php echo $row->classname; ?>-Student-Search"
关键在于,您不仅要制作路线,还要在href链接中以相同方式添加后缀。