本文实例讲述了thinkPHP5框架路由常用知识点。分享给大家供大家参考,具体如下:
一、路由的模式
普通模式(默认pathinfo,不解析路由)
'url_route_on' => false
混合模式(pathinfo+解析路由)
'url_route_on' => true, 'url_route_must'=> false,
强制模式(必须路由)
'url_route_on' => true, 'url_route_must' => true,
二、动态注册路由
1、动态注册路由
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');
实例
return [ Route::rule('demo/:name/[:sex]', 'index/Index/demo', 'GET', ['ext' => 'html'], ['name' => '\w+', 'age' => '\w{1,2}']), ]
路由表达式:demo/:name/[:sex](”[]“为可选)
路由地址:/index/Index/demo
请求类型:get|post| 等
路由参数:['ext'=>'html'](后缀检测)等等
变量规则:['sex'=>'0|1'](只能为0和1)等等,正则表达式
//根路径下使用闭包 Route::get('/', function () { echo '我是demo3,临时维护,谢谢支持!'; }), //301重定向 // Route::get('demo4', 'http://www.baidu.com'),
2、数组方式动态注册路由(简洁)
return [ //pattern全局变量 '__pattern__' => [ 'name' => '\w+', ... ], 'demo2' => 'admin/Index/demo2', 'demo3/:name/:age' => ['admin/Index/demo3', ['method' => 'get', 'ext' => 'asp'], ['age' => '\d+']], 'demo4/:name/:money' => ['admin/Index/demo4', ['method' => 'get', 'ext' => 'asp'], ['money' => '\d+']], 'demo5/:name' => ['admin/Index/demo5', ['method' => 'get', 'ext' => 'php'], []], ];
三、路由分组
个人:同一个路由定义(demo),根据URL传递参数的值的不同,而匹配不同的变量规则,从而进入不同的路由规则。例如以下
①逐条
'demo/:num' => ['admin/Index/demo1', ['method' => 'get'], ['num' => '\d{2,4}']], 'demo/:str' => ['admin/Index/demo2', ['method' => 'get'], ['str' => '[a-zA-Z]+']], 'demo/:bool' => ['admin/Index/demo3', ['method' => 'get'], ['bool' => '0|1']],
②合并
'[demo]' => [ ':num' => ['admin/Index/demo1', ['method' => 'get'], ['num' => '\d{2,4}']], ':str' => ['admin/Index/demo2', ['method' => 'get'], ['str' => '[a-zA-Z]+']], ':bool' => ['admin/Index/demo3', ['method' => 'get'], ['bool' => '0|1']], ],
内容版权声明:除非注明,否则皆为本站原创文章。