第三周深入理解THinkPhp5.1

一、Route路由技术入门

1.路由定义文件

统一定义在route目录下,默认为route.php;
可以在该目录下设置多个路由文件,最终一起合并加载;
例如根据模块定义路由: route.php,index.php,admin.php,api.php…;
建议添加:use think\facade\Route;,不使用别名:Route,以获取IDE的代码提示;

2.路由定义的基本语法

Route::rule('路由表达式','路由地址','请求类型','路由参数','变量规则');
  1. 路由表达式: 用户输入的url地址,即自定义的路由规则;
  2. 路由地址: 实际转向的url地址;
  3. 请求类型: get/post/put/delete…,推荐直接使用快捷方法;
  4. 路由参数: 主要检测路由规则,推荐使用方法设置;
  5. 变量规则: url中的变量参数须遵守的规则,默认为:’\w+’,推荐使用方法设置;

3.路由定义的快捷方式

GET:
Route::get('路由表达式','路由地址');
Route::rule('路由表达式','路由地址')->method('get');
POST:
Route::post('路由表达式','路由地址');
Route::rule('路由表达式','路由地址')->method('post');
PUT:用于更新资源(不常用)
Route::put('路由表达式','路由地址');
Route::rule('路由表达式','路由地址')->method('put');
DELETE:用于删除资源(不常用)
Route::delete('路由表达式','路由地址');
Route::rule('路由表达式','路由地址')->method('delete');

4.路由表达式

静态表达式: 没有参数,例如: user;
动态表达式: 有参数,V5.1.6+ 推荐使用组合变量规则来定义;
user/hello: /分隔符可自定义,例如 user-hello 或者 user_hello都可以;
user/hello/<name>: ,<name>是必选变量;
user/hello/<name?>: <name?>是可选变量;

5.路由参数

路由参数很多,这里仅介绍几个常用的
method(): 请求类型;
ext(‘html’): url扩展名;
更多参数请访问: 路由参数
实例:

Route::rule('hello/<name?>', 'index/hello')
        ->method('get')     // 请求类型
        ->ext('html');      // url后缀

6.变量规则

方法: pattern()
参数说明:

单个变量规则可用字符串: pattern('name', '\w+');
多个变量规则可用数组: pattern(['name' => '\w+','id' => '\d']);

实例:

Route::rule('hello/<name?>', 'index/hello')
        ->pattern('name','[a-z]{2,5}$')     // 必须是小字字母且必须在2到5个之间
        ->method('get') // 请求类型
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值