懒得写注释,直接上代码

配置文件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. //Route::group('demo',[
  25. // ':num' => ['index/Index/demo2', ['method'=>'get|post' , 'ext'=>'ps'] , ['num' => '\d{2,4}'] ],
  26. // ':str' => ['index/Index/demo3', ['method'=>'get|post' , 'ext'=>'ps'] , ['str' => '[a-zA-Z]'] ],
  27. // ':bool' => ['index/Index/demo4', ['method'=>'get|post' , 'ext'=>'ps'] , ['bool'=> '0|1'] ],
  28. //]);
  29.  
  30. //动态闭包分组
  31. //Route::group('demo', function(){
  32. // Route::any(':num','index/Index/demo2',['method'=>'get|post' , 'ext'=>'ps'] , ['num' => '\d{2,4}'] );
  33. // Route::any(':str','index/Index/demo3',['method'=>'get|post' , 'ext'=>'ps'] , ['str' => '[a-zA-Z]'] );
  34. // Route::any(':bool','index/Index/demo4',['method'=>'get|post' , 'ext'=>'ps'] , ['bool' => '0|1'] );
  35. //});
  36.  
  37. //将公共的放在一起
  38. //头重脚轻
  39. //Route::group(['name' => 'demo','method'=>'get|post','ext'=>'ps','prefix'=>'index/Index/'], function(){
  40. // Route::any(':num','demo2',[] , ['num' => '\d{2,4}'] );
  41. // Route::any(':str','demo3',[] , ['str' => '[a-zA-Z]'] );
  42. // Route::any(':bool','demo4',[ 'ext'=>'ps'] , ['bool' => '0|1'] );
  43. //});
  44.  
  45. //->改
  46. //Route::group('demo', function(){
  47. // Route::any(':num','demo2');
  48. // Route::any(':str','demo3');
  49. // Route::any(':bool','demo4' );},
  50. // ['method'=>'get|post','ext'=>'ps','prefix'=>'index/Index/'],
  51. // ['num' => '\d{2,4}' , 'str' => '[a-zA-Z]' , 'bool' => '0|1' ]);
  52.  
  53. //动态的路由别名定义
  54. //注意!路由别名不支持变量类型和路由条件判断,单纯只是为了缩短URL地址,并且在定义的时候需要注意避免和路由规则产生混淆。
  55. //Route::alias('index','index/Index',['ext'=>'html']);
  56.  
  57. //动态黑白名单(allow白名单 , except黑名单)
  58. Route::alias('index','index/Index',['ext'=>'html','allow'=> 'demo2']);
  59.  
  60. //批量注册
  61. return [
  62. //统一变量名称一样的变量规则,(如果个别同时定义,则以个别的为准)
  63. // '__pattern__' => [
  64. // 'name' => '\w+'
  65. // ],
  66.  
  67. // "demo/:name/:age/[:abc]" => ['index/Index/demo' , ['method' => 'GET|POST' , 'ext' => 'html'] , ['name'=> '\W+']],
  68.  
  69. //路由分组
  70. //根据专参不同,来决定进入哪个控制器
  71. // 'demo/:num' => ['index/Index/demo2', ['method'=>'get|post' , 'ext'=>'ps'] , ['num' => '\d{2,4}'] ],
  72. // 'demo/:str' => ['index/Index/demo3', ['method'=>'get|post' , 'ext'=>'ps'] , ['str' => '[a-zA-Z]'] ],
  73. // 'demo/:bool' => ['index/Index/demo4', ['method'=>'get|post' , 'ext'=>'ps'] , ['bool'=> '0|1'] ],
  74.  
  75. //分组
  76. // '[demo]' =>[
  77. // ':num' => ['index/Index/demo2', ['method'=>'get|post' , 'ext'=>'ps'] , ['num' => '\d{2,4}'] ],
  78. // ':str' => ['index/Index/demo3', ['method'=>'get|post' , 'ext'=>'ps'] , ['str' => '[a-zA-Z]'] ],
  79. // ':bool' => ['index/Index/demo4', ['method'=>'get|post' , 'ext'=>'ps'] , ['bool'=> '0|1'] ],
  80. // ],
  81.  
  82. //批量定义路由别名
  83. // '__alias__' =>[
  84. // 'index' => ['index/Index',['ext'=>'html']],
  85. // ]
  86.  
  87. //黑白名称
  88. // '__alias__' =>[
  89. // 'index' => ['index/Index',[
  90. // 'ext'=>'html',
  91. // 'allow' => 'demo2',
  92. // ]],
  93. // ]
  94. ];

控制器:

  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. public function demo($name,$age,$abc='')
  13. {
  14. echo "ThinkPHP5 路由使用方法说明!";
  15. echo "<br/>";
  16. echo "我的名字是" . $name;
  17. echo "<br/>";
  18. echo "今年我已经" . $age ."岁了";
  19. echo "<br/>";
  20. echo "我是可选变量:". $abc;
  21. echo "<br/>";
  22. echo "其中,我是没有路由化的参数:" . input('id');
  23. }
  24.  
  25. public function demo2($num)
  26. {
  27. echo '我是路由2';
  28. echo "<br/>";
  29. echo "我只能是数字:" .$num;
  30. }
  31.  
  32. public function demo3($str)
  33. {
  34. echo '我是路由3';
  35. echo "<br/>";
  36. echo "我只能是字母:" .$str;
  37. }
  38.  
  39. public function demo4($bool)
  40. {
  41. echo '我是路由4';
  42. echo "<br/>";
  43. echo "我只能是布尔值:" .$bool;
  44. }
  45.  
  46. }

tp5--路由的使用方法(深入)的更多相关文章

  1. TP5 路由使用

    这里可以直接从第四条开始看 原文http://www.upwqy.com/details/12.html 1 文档链接 tp5路由官方文档  https://www.kancloud.cn/manua ...

  2. mvc中多参数URL会很长,首次加载不传参数让url很短,路由规则实现方法[bubuko.com]

    如要实现列表中地址全路径“bubuko-11-2.html”,在首次进入时,使用短路径“bubuko.html”,只有再次href后才显示全路径“bubuko-11-2.html”,下面使用路由规则来 ...

  3. 建立tracert路由列表的方法

    建立tracert路由列表的方法:电脑屏幕左下方 选择开始选项运行 输入 CMD在DOS命令行下输入:tracert (你的网站域名)   运行结果中如出现了“*     *     *    req ...

  4. centos7 防火墙一些相关设置 开机添加静态路由 特殊的方法

    参考文献: https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/s ...

  5. Redhat、CentOS添加静态路由的标准方法

    我们经常遇到需要在系统默认路由的基础上,额外添加静态路由的需求.为了使得下次系统启动这些静态路由依旧生效,我们可能采取在rc.loal里加入route命令追加静态路由的方法. 现在给大家推荐Redha ...

  6. 接口开发,tp5结合swagger-ui安装方法

    今天看到老java用的swagger提供接口,美观好用,方便维护,不是写好接口之后再写接口文档,麻烦的要死.网上找了找结合php的方法,在此记录一下,以后再开发接口就可以方便很多了. Swagger的 ...

  7. 基于hi-nginx的web开发(python篇)——动态路由和请求方法

    hi.py的提供的路由装饰器接受两个参数,第一个参数指定动态路由的正则模式,第二个参数指定同意的http请求方法列表. 比如: @app.route(r"^/client/?$", ...

  8. 路由和HTTP方法

    from flask import Flask app = Flask(__name__) # # 路由用法 # @app.route('/') def hello_world(): # 这种方法再不 ...

  9. 关于linux的添加永久静态路由的static-routes方法

    一:使用 route 命令添加 使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法: //添加到主机的路由 # route add –host 192.168.1.11 dev ...

  10. angular路由传参和获取路由参数的方法

    1.首先是需要导入的模块 import { Router } from "@angular/router";//路由传参用到 import{ActivatedRoute,Param ...

随机推荐

  1. go server框架学习之路 - 写一个自己的go框架

    go server框架学习之路 - 写一个自己的go框架 用简单的代码实现一个go框架 代码地址: https://github.com/cw731/gcw 1 创建一个简单的框架 代码 packag ...

  2. [HDU]1166敌兵布阵<静态线段树>

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 题目大意:给出n个点,每个点有一个值,现在有三种操作, 1.在i点加上j 2.在i点减去j 3. ...

  3. GitHub 热点速览 Vol.14:周获 2k+ Vim 掀起三维编程风

    作者:HelloGitHub-小鱼干 摘要(用于 公众号/博客园等地方)寓教于乐,应该是上周 Trending 的主题了,无论是被多人转发推荐的三维 Vim 项目 Vim³ 或者是流体运动的 WebG ...

  4. Blazor入门笔记(6)-组件间通信

    1.环境 VS2019 16.5.1.NET Core SDK 3.1.200Blazor WebAssembly Templates 3.2.0-preview2.20160.5 2.简介 在使用B ...

  5. 原生js弹力球

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Nginx 是如何处理 HTTP 头部的?

    Nginx 处理 HTTP 头部的过程 Nginx 在处理 HTTP 请求之前,首先需要 Nginx 的框架先和客户端建立好连接,然后接收用户发来的 HTTP 的请求行,比如方法.URL 等,然后接收 ...

  7. Epicor support overview支持服务

    提供以下服务项目: •Support services 支持服务•Implementations 实施•Epicor software upgrades 软件升级•Database support & ...

  8. Java时间戳获取

    Java时间戳获取方式: 1:New Date().getTime(); 2: System.currentTimeMillis();区别: New Date().getTime()的底层其实是Sys ...

  9. 微信小程序placeholder设置自定义颜色

    原地址链接:https://blog.csdn.net/august_leo/article/details/80877382 这是微信小程序input组件的官方文档描述,下图红框里的placehol ...

  10. Android 6.0及以上版本如何实现从图库中选取图片和拍照功能

    XML 代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr ...