最近在使用ThinkPHP6做项目的开发,故整理了一些常用的路由使用方式,

可以方便之后的使用。

目录

引用路由门面

基础路由

快捷路由

规则表达式

静态地址

静态结合动态地址

方法设置

完全匹配

默认路由规则

设置完全匹配

路由别名

变量规则

局部变量规则

全局变量规则

重定向路由

路由到模板

强制路由


引用路由门面

use think\facade\Route;

基础路由

Route::rule('路由表达式', '路由地址', '请求类型');

所有请求类型皆可访问

Route::rule('user', 'User/index');

只能get访问

Route::rule('user', 'User/index', 'GET');

get/post都能访问

Route::rule('user', 'User/index', 'GET|POST');

注意:请求类型参数不区分大小写

快捷路由

Route::快捷方法名('路由表达式', '路由地址');

类型

描述

快捷方法

GET

GET请求

get

POST

POST请求

post

PUT

PUT请求

put

DELETE

DELETE请求

delete

PATCH

PATCH请求

patch

HEAD

HEAD请求

head (V6.0.13+)

*

任何请求类型

any

示例如下:

Route::get('user','User/index');
Route::post('user','User/index');
Route::put('user','User/index');
Route::delete('user','User/index');
Route::any('user/detail','User/detail');

规则表达式

静态地址

Route::get('user', 'User/index');

静态结合动态地址

Route::get('user/detail/:name', 'User/detail');Route::get('user/:name/:gender', 'User/test');

方法设置

public function detail($name = 'ThinkPHP6')
{return 'hello, This is ' . $name . ' detail page!';
}public function test($name, $gender)
{echo $name;echo '<br/>';echo $gender;
}

完全匹配

默认路由规则

Route::get('user', 'User/index'); 

默认路由规则不要求全部匹配,则下面两种都可访问

(1)http://serverName/user

(2)http://serverName/user/2

设置完全匹配

Route::get('user$', 'User/index');

之后只能路由(1)访问

路由别名

给路由设置别名,注意要确保全局唯一

例如:

Route::get('user/detail/:name', 'User/detail')->name('detail');

控制器或视图生成地址时可以:

url('detail', ['name' => 'ThinkPHP6']);

默认生成地址:

url('user/detail', ['name' => 'ThinkPHP6']);

变量规则

局部变量规则

仅在当前路由有效:

// 匹配字母、数字、中文和下划线字符
Route::get('user/detail/:name', 'User/detail')->pattern(['name' => '[\w]+']);
// 匹配数字
Route::get('user/delete/:id', 'User/delete')->pattern(['name' => '[\d]+']);

全局变量规则

// 批量匹配设置
Route::pattern(['name' => '\w+', 'id'   => '\d+',]);
Route::get('user/detail/:name', 'User/detail');
Route::get('user/delete/:id', 'User/delete');

重定向路由

Route::redirect('user/delete/:id', url('user/detail', ['name' => 'ThinkPHP6']), 302);

路由到模板

// 没有模板变量
Route::view('user/detail', 'user/index');
// 传递模板变量
Route::view('user/detail', 'user/index', ['name' => '张三']);
// 动态路由+模板变量
Route::view('user/:name', 'user/index', ['name' => '张三']);

强制路由

为防止设置路由不生效,可以修改config/route.php

开启全局强制路由、路由完全匹配选项

开启全局完全匹配后,如果需要对某个路由关闭完全匹配,可以使用

Route::get('user/detail/:name', 'User/detail')->completeMatch(false);

在这里只是列举了一些常用的路由类型和参数设置,实际上还有很多,有兴趣的话可以了解一下。

ThinkPHP 路由使用相关推荐

  1. thinkphp路由的作用

    thinkphp路由的作用 问题 请问一下什么是thinkPHP路由,路由有什么作用?谢谢 解答 网络访问地址从来都是映射访问的,最初是这样,主机名(电脑名称)=>ip地址(如局域网192.16 ...

  2. ThinkPHP路由源码解析(三)

    本文接着上文继续来解读路由源码,如果你看到本文可以先看一下之前写的路由文章,共计俩篇. ThinkPHP路由源码解析 前言 一.检测路由-合并分组参数.检查分组路由 二.检测URL变量和规则路由是否匹 ...

  3. thinkphp路由配置 php7.0,thinkphp3.2 路由设置方法

    在配置文件中增加路由设置Application\Common\Conf\config.php 下面是ThinkPHP3.2路由设置中规则表达式的配置方式 return array( 'URL_ROUT ...

  4. php+tp框架+API,【路由】利用Thinkphp路由实现API开发版本管理

    # 前言 ***** ### 在使用Thinkphp接口开发项目的程中可能会遇到这样的场景 + 准备将原有系统重构一遍,但是出于某种原因,老的系统在未来一段时间内必须和新的版本共存: + APP存在老 ...

  5. thinkphp 路由

    路由定义文件 route 定义下的所有的路由文件都是有效的 定义路由必须使用 use think\facade\Route; 控制器定义 <?php namespace app\admin\co ...

  6. ThinkPHP路由源码解析(一)

    路由是项目开发中比较重要的一个环节,每个项目都会使用路由进行管理接口,接下来本文会从源码方面带大家一起学习路由. 框架路由解析 前言 一.路由初识化简单分析 二.通过定义路由再谈门面 三.路由定义ru ...

  7. 配置thinkphp路由,隐藏index.php

    开启rewrite模块 在ubuntu中,开启很简单,执行以下bash命令即可 1 sudo a2enmod rewrite 添加.htaccess支持 默认apache会忽视所有的规则重写,即使添加 ...

  8. 李炎恢+php+下载,李炎恢thinkphp视频教程

    课程目标: 学习ThinkPHP3.2.1的使用方法. 适合对象: 适合有一定PHP基础,对ThinkPHP框架感兴趣的用户. 学习条件: 有面向对象基础,有MVC基础等. 课程目录 框架入门 01. ...

  9. index.php上传到服务器找不到站点,ThinkPHP上传到服务器出现404,未找到index.php模板等问题...

    问题:代码在本地写好之后,传到服务器,首页能正常加载,但无法加载任何控制器,无法加载其他页面. nginx 的错误代码为 404 not found. 问题举例:我之前做的是自己的一个博客 能够直接访 ...

最新文章

  1. R语言对dataframe(data.table)数据分层随机抽样实战
  2. 十三条道德准则-富兰克林
  3. TypeScript 工具类型 - Utility Types
  4. 休眠日志:常见问题的提示和解决方案
  5. 互联网日报 | 6月9日 星期三 | 腾讯发布长中短视频计划;阿里云新增两大海外数据中心;陌陌持续25个季度盈利...
  6. iptables规则书写总结
  7. golang 类型说明
  8. python程序开机自启动_Linux下Python脚本自启动和定时启动的详细步骤
  9. 计算走线长度_高速走线长度的一些思考
  10. 温故而知新:new与override的差异以及virtual方法与abstract方法的区别
  11. 大一新生应该如何学习C语言,书上代码看不懂理解不了怎么办?
  12. 车辆信息识别 车辆目标检测 车牌识别 车型识别 颜色 朝向 车大小识别
  13. python学习一点 快乐一点(2)乱序整数序列两数之和绝对值最小
  14. SQL语句编写经典50题
  15. 要实现一台电脑可以上公司内网也可以访问外网
  16. 《OpenDRIVE1.6规格文档》2
  17. Linux无法显示ip的解决办法
  18. doom emacs如何安装新插件和自定义快捷键
  19. 计算机专业在清华学几年,考上清华退学,就为再考清华计算机?
  20. JXLS-----JXLS简介

热门文章

  1. golang 搜索引擎
  2. C++ stoi函数的用法
  3. VUE2.0 饿了么学习笔记(10)加减号组件cartcontrol
  4. linux中nginx.conf的文件路径以及重启nginx的方法
  5. 踩坑之Linux top监控进程%CPU超过100%
  6. JAVA中的位运算操作
  7. 关于backiee幻灯片图片保存的问题
  8. Win8 消费者预览版(中文版)硬盘安装
  9. 运行近20年,基于Win 98的火星探测器软件迎来首次升级
  10. 上周热点回顾(6.25-7.1)