tp6.0笔记(路由)

use think\facade\Route;

1:注册路由

Route::get('new/<id>/<cate?>','News/detailed');

快捷方式包含:get,post,put,delete,patch,any;<cate?>表示该变量为可选变量;可选参数只能放到路由规则的最后,如果在中间使用了可选参数的话,后面的变量都会变成可选参数。

2:完全匹配

Route::get('new/<id>/<cate?>$','News/detailed');

方法一:路由表达式最后使用$符号,表示该条路由为完全匹配路由

方法二:修改路由配置文件,'route_complete_match'   => true

3:路由额外参数传入

Route::get('new/<id>/<cate?>','News/detailed')->append(['status' => 1, 'app_id' =>5]);

如果append方法中的变量和路由规则存在冲突的话,append方法传入的优先

4:路由变量规则

Route::get('new/<id>/<cate?>','News/detailed')->pattern(['id' => '\d+']);

5:路由参数

Route::get('new/:id', 'News/read')->ext('html|shtml')->https();  //后缀为html或者shtml并且要求https协议
Route::get('new/:id', 'News/read')
    ->option([
        'ext'   => 'html',
        'https' => true
    ]);
Route::get('new/:id', 'News/read')->denyExt('jpg|png|gif');  //禁止URL后缀为png、jpg和gif的访问
Route::get('new/:id', 'News/read')->domain('news.thinkphp.cn');  //只在news.thinkphp.cn访问时路由有效

ext:URL后缀,支持多个;denyExt:URL禁止后缀检测,支持多个;https:检测是否https请求;domain:域名检测;completeMatch:是否完整匹配路由;model:绑定模型;cache:请求缓存;ajax:Ajax检测;pjax:Pjax检测

6:路由中间件

Route::rule('hello/:name','hello')->middleware(auth);  //单中间件
Route::rule('hello/:name','hello')->middleware(['auth','temp']);  //多中间件

全局中间件则需在配置文件route.php中设置,则全局生效

'middleware'    =>    [
    'auth',
    'temp',
]

7:路由分组,把相同前缀的路由定义合并分组

Route::group('admin', function () {
    Route::rule('list/:id', 'admin/list');
    Route::rule('detailed/:name', 'admin/detailed');
})->ext('html')->pattern(['id' => '\d+', 'name' => '\w+']);

8:资源路由,多用于API的RESTFul接口

Route::resource('news', 'News')->vars(['news' => 'news_id'])->only(['index', 'read', 'edit', 'update']);;   //vars动态修改默认id,only限制可操作路由(except为除外)

请求类型:[ GET ];访问地址:[ http://url/news/ ];对应方法:[ News->index() ];//列表
请求类型:[ GET ];访问地址:[ http://url/news/create ];对应方法:[ News->create() ];//新增
请求类型:[ GET ];访问地址:[ http://url/news/1 ];对应方法:[ News->read(1) ];//读取
请求类型:[ GET ];访问地址:[ http://url/news/1/edit ];对应方法:[ News->edit(1) ];//修改
请求类型:[ POST ];访问地址:[ http://url/news/ ];对应方法:[ News->save() ];//处理
请求类型:[ PUT ];访问地址:[ http://url/news/1 ];对应方法:[ News->update(1) ];//更新
请求类型:[ DELETE ];访问地址:[ http://url/news/1 ];对应方法:[ News->delete(1)  ];//删除

9:全局MISS路由,没有匹配到所有的路由规则后执行一条设定的路由

Route::miss('public/miss');

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糯麦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值