懒得写注释,直接上代码
配置文件Route:
1 <?php
2 use think\Route;
3
4 //tp5路由测试
5 //动态注册
6 //Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');
7 // /[:abc]为可选参数,一般放在必选参数的最后
8 //Route::rule('demo/:name/:age/[:abc]', 'index/Index/demo', 'GET|POST', ['domain'=>'shop.com','ext'=>'html'], ['name'=>'\W+']);
9
10 //路由闭包
11 //Route::get('hello/:name',function($name){
12 // return 'Hello,'.$name;
13 //});
14
15 // '/'表示网站的public,这样设置则为首页路径
16 //Route::get('/',function(){
17 // return '你的网站已关闭';
18 //});
19
20 //跳转网页
21 //Route::get('demo1', 'http://www.baidu.com');
22
23
24 //动态分组
25 //Route::group('demo',[
26 // ':num' => ['index/Index/demo2', ['method'=>'get|post' , 'ext'=>'ps'] , ['num' => '\d{2,4}'] ],
27 // ':str' => ['index/Index/demo3', ['method'=>'get|post' , 'ext'=>'ps'] , ['str' => '[a-zA-Z]'] ],
28 // ':bool' => ['index/Index/demo4', ['method'=>'get|post' , 'ext'=>'ps'] , ['bool'=> '0|1'] ],
29 //]);
30
31
32 //动态闭包分组
33 //Route::group('demo', function(){
34 // Route::any(':num','index/Index/demo2',['method'=>'get|post' , 'ext'=>'ps'] , ['num' => '\d{2,4}'] );
35 // Route::any(':str','index/Index/demo3',['method'=>'get|post' , 'ext'=>'ps'] , ['str' => '[a-zA-Z]'] );
36 // Route::any(':bool','index/Index/demo4',['method'=>'get|post' , 'ext'=>'ps'] , ['bool' => '0|1'] );
37 //});
38
39 //将公共的放在一起
40 //头重脚轻
41 //Route::group(['name' => 'demo','method'=>'get|post','ext'=>'ps','prefix'=>'index/Index/'], function(){
42 // Route::any(':num','demo2',[] , ['num' => '\d{2,4}'] );
43 // Route::any(':str','demo3',[] , ['str' => '[a-zA-Z]'] );
44 // Route::any(':bool','demo4',[ 'ext'=>'ps'] , ['bool' => '0|1'] );
45 //});
46
47 //->改
48 //Route::group('demo', function(){
49 // Route::any(':num','demo2');
50 // Route::any(':str','demo3');
51 // Route::any(':bool','demo4' );},
52 // ['method'=>'get|post','ext'=>'ps','prefix'=>'index/Index/'],
53 // ['num' => '\d{2,4}' , 'str' => '[a-zA-Z]' , 'bool' => '0|1' ]);
54
55
56 //动态的路由别名定义
57 //注意!路由别名不支持变量类型和路由条件判断,单纯只是为了缩短URL地址,并且在定义的时候需要注意避免和路由规则产生混淆。
58 //Route::alias('index','index/Index',['ext'=>'html']);
59
60 //动态黑白名单(allow白名单 , except黑名单)
61 Route::alias('index','index/Index',['ext'=>'html','allow'=> 'demo2']);
62
63 //批量注册
64 return [
65 //统一变量名称一样的变量规则,(如果个别同时定义,则以个别的为准)
66 // '__pattern__' => [
67 // 'name' => '\w+'
68 // ],
69
70 // "demo/:name/:age/[:abc]" => ['index/Index/demo' , ['method' => 'GET|POST' , 'ext' => 'html'] , ['name'=> '\W+']],
71
72 //路由分组
73 //根据专参不同,来决定进入哪个控制器
74 // 'demo/:num' => ['index/Index/demo2', ['method'=>'get|post' , 'ext'=>'ps'] , ['num' => '\d{2,4}'] ],
75 // 'demo/:str' => ['index/Index/demo3', ['method'=>'get|post' , 'ext'=>'ps'] , ['str' => '[a-zA-Z]'] ],
76 // 'demo/:bool' => ['index/Index/demo4', ['method'=>'get|post' , 'ext'=>'ps'] , ['bool'=> '0|1'] ],
77
78 //分组
79 // '[demo]' =>[
80 // ':num' => ['index/Index/demo2', ['method'=>'get|post' , 'ext'=>'ps'] , ['num' => '\d{2,4}'] ],
81 // ':str' => ['index/Index/demo3', ['method'=>'get|post' , 'ext'=>'ps'] , ['str' => '[a-zA-Z]'] ],
82 // ':bool' => ['index/Index/demo4', ['method'=>'get|post' , 'ext'=>'ps'] , ['bool'=> '0|1'] ],
83 // ],
84
85 //批量定义路由别名
86 // '__alias__' =>[
87 // 'index' => ['index/Index',['ext'=>'html']],
88 // ]
89
90 //黑白名称
91 // '__alias__' =>[
92 // 'index' => ['index/Index',[
93 // 'ext'=>'html',
94 // 'allow' => 'demo2',
95 // ]],
96 // ]
97 ];
控制器:
1 <?php
2 namespace app\index\controller;
3 use app\index\controller\Base;
4
5 class Index extends Base
6 {
7 public function index()
8 {
9 return $this -> fetch();
10 }
11
12
13 public function demo($name,$age,$abc='')
14 {
15 echo "ThinkPHP5 路由使用方法说明!";
16 echo "<br/>";
17 echo "我的名字是" . $name;
18 echo "<br/>";
19 echo "今年我已经" . $age ."岁了";
20 echo "<br/>";
21 echo "我是可选变量:". $abc;
22 echo "<br/>";
23 echo "其中,我是没有路由化的参数:" . input('id');
24 }
25
26 public function demo2($num)
27 {
28 echo '我是路由2';
29 echo "<br/>";
30 echo "我只能是数字:" .$num;
31 }
32
33 public function demo3($str)
34 {
35 echo '我是路由3';
36 echo "<br/>";
37 echo "我只能是字母:" .$str;
38 }
39
40 public function demo4($bool)
41 {
42 echo '我是路由4';
43 echo "<br/>";
44 echo "我只能是布尔值:" .$bool;
45 }
46
47 }