5ucms论坛
标题:
4 路由定义
[打印本页]
作者:
admin
时间:
2019-5-23 09:34
标题:
4 路由定义
app下有个route.php,路由配置文件,可以用来简化路径。通过简化路径可以让访客猜不到真实模块所在的文件夹。
关于路由,这里有个手册写的很详细,图文式,容易理解
https://www.kancloud.cn/ldkt/tp5_route
售价9.9,不是我写的哈,试读可以看一部分内容
一、单参数
比如写一个
'qss/[:name]' => ['index/index/qss', ['method' => 'get','ext' => 'html']],
复制代码
在控制器index.php里写
public function qss($name='qss')
{
return 'qss方法的name='.$name;
print_r($this->request->param()); //打印接收到的全部参数
}
复制代码
就可以访问 /qss/123.html 得到结果了,实际原始路径是/index/index/qss/name/123
这里的[:name]的中括号表示,参数可以有,也可以无。如果去掉中括号,则必须要有参数。
'ext' => 'html' 意思是,必须是.html后缀,不加也不认
二、多参数改分隔符
如/index/index/qss2/aaa/111/bbb/222/ccc/333.html
希望改成 /qss/aaa/ddd-333-ccc-444-eee-555.html
*URL分隔符,在config.php里找到 pathinfo_depr 把 '/' 改 '-' 即可
三、日期正则
public function today($year='2019',$month='05')
{
echo "今天是$year年$month月";
}
复制代码
如访问 /index/index/today/year/2019/month/05
想改为 /today/2019/05.html
路由配置如下
'today/:year/:month' =>['index/index/today',['method'=>'get'],['year']=>'\d{4}','moth'=>'\d{2}']],
复制代码
正则匹配为年必须4位数字,月必须2位数字,否则不认,正则相关知识请另外学习
如果加上[]号,就是选填,可以访问/today 不报错
'today/[:year]/[:month]' =>['index/index/today',['method'=>'get'],['year']=>'\d{4}','moth'=>'\d{2}']],
复制代码
作者:
admin
时间:
2019-5-28 12:24
URL生成
*控制器里
要先引入
use think/Url;
复制代码
然后
public function url(){
echo Url::build('url2','a=1&b=2');
echo "<br/>";
echo url('url2','a=1&b=2'); //简洁方式
echo "<br/>";
echo url('url2',['a'=>1,'b'=>2]); //数组方式
echo "<br/>";
echo url('url2',array('a'=>1,'b'=>2)); //数组方式
echo "<br/>";
echo url('admin/index2/url2','a=1&b=2');
echo "<br/>";
echo url('admin/HelloWorld/hello'); //自动切换url_convert 其他控制器的
echo "<br/>";
echo url('today/2019/06'); //路由规则里的
}
public function url2(){
print_r($this->request->param());
}
复制代码
生成结果
/index/index/url2/a/1/b/2.html
/index/index/url2/a/1/b/2.html
/index/index/url2/a/1/b/2.html
/index/index/url2/a/1/b/2.html
/admin/index2/url2/a/1/b/2.html
/admin/hello_world/hello.html
/today/2019/06.html
复制代码
作者:
admin
时间:
2019-5-28 12:29
总结
1、参数绑定
2、url大小写主义
3、当不支持pathinfo怎么办
4、apache或nginx隐藏index.php,伪静态方式
5、定义路由规则、复杂路由
6、url参数分隔符,网址后缀.html修改
7、生成URL地址
8、路径访问原理
欢迎光临 5ucms论坛 (http://bbs.5ucms.com/)
Powered by Discuz! X3.2