求助一个关于CI框架的url路由的问题

求助一个关于CI框架的url路由的问题,第1张

不晓得你这路由啥情况,我都是尽量避免设置路由的。

阁下的情况,我可以给出一个折衷的办法:

路由里这样设置:

$route['news/(:any)'] = "news/news_lastest_by_year/$1"

然后,在你的news控制器里,写这样一个方法

function news_lastest_by_year($year, $page)

{

    $year = intval($year)//将传过来的第一个参数强制转换为整数,如2014转为2014

    $page = intval($page)//将传过来的第二个参数强制转换为整数,如1.html转为1

    //后续代码

}

当然,这个有个条件,那就是news/$1/$2 这后面的两个参数只能是数字,如果不是数字,都会被强制转化为数字 。

当然,若非要传非数字的参数,那么在控制器里,就不要用intval()来强制转换,可以用正则匹配,检测它是不是数字

阁下需要在使用框架,那么就要把项目里的第一个程序都放在框架架构之中,而不能在根目录下新建一个admin.php。

阁下应该知晓,CI框架的入口文件是index.php,里面的任何页面都应该基于这个入口文件,即访问路径永远是index.php/*****这样的形式,而不能单独出来一个admin.php,这样的话,没有通过入口文件访问了,那么框架的效用也就没有了。

所以,阁下应该在application里的controllers目录下建一个admin.php,并按CI框架控制器的规则来使用它,这样,访问路径就是index.php/admin这样了

当然,阁下会以为所有的URL中都有一个index.php非常难看,那么阁下可以通过CI框架的路由规则将之隐藏掉,也可以使用服务器的伪静态功能来隐藏掉。但也仅是隐藏了而已,实际路径仍然有index.php这个入口文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11474796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存