ThinkPHP 路由使用
最近在使用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 路由使用相关推荐
- thinkphp路由的作用
thinkphp路由的作用 问题 请问一下什么是thinkPHP路由,路由有什么作用?谢谢 解答 网络访问地址从来都是映射访问的,最初是这样,主机名(电脑名称)=>ip地址(如局域网192.16 ...
- ThinkPHP路由源码解析(三)
本文接着上文继续来解读路由源码,如果你看到本文可以先看一下之前写的路由文章,共计俩篇. ThinkPHP路由源码解析 前言 一.检测路由-合并分组参数.检查分组路由 二.检测URL变量和规则路由是否匹 ...
- thinkphp路由配置 php7.0,thinkphp3.2 路由设置方法
在配置文件中增加路由设置Application\Common\Conf\config.php 下面是ThinkPHP3.2路由设置中规则表达式的配置方式 return array( 'URL_ROUT ...
- php+tp框架+API,【路由】利用Thinkphp路由实现API开发版本管理
# 前言 ***** ### 在使用Thinkphp接口开发项目的程中可能会遇到这样的场景 + 准备将原有系统重构一遍,但是出于某种原因,老的系统在未来一段时间内必须和新的版本共存: + APP存在老 ...
- thinkphp 路由
路由定义文件 route 定义下的所有的路由文件都是有效的 定义路由必须使用 use think\facade\Route; 控制器定义 <?php namespace app\admin\co ...
- ThinkPHP路由源码解析(一)
路由是项目开发中比较重要的一个环节,每个项目都会使用路由进行管理接口,接下来本文会从源码方面带大家一起学习路由. 框架路由解析 前言 一.路由初识化简单分析 二.通过定义路由再谈门面 三.路由定义ru ...
- 配置thinkphp路由,隐藏index.php
开启rewrite模块 在ubuntu中,开启很简单,执行以下bash命令即可 1 sudo a2enmod rewrite 添加.htaccess支持 默认apache会忽视所有的规则重写,即使添加 ...
- 李炎恢+php+下载,李炎恢thinkphp视频教程
课程目标: 学习ThinkPHP3.2.1的使用方法. 适合对象: 适合有一定PHP基础,对ThinkPHP框架感兴趣的用户. 学习条件: 有面向对象基础,有MVC基础等. 课程目录 框架入门 01. ...
- index.php上传到服务器找不到站点,ThinkPHP上传到服务器出现404,未找到index.php模板等问题...
问题:代码在本地写好之后,传到服务器,首页能正常加载,但无法加载任何控制器,无法加载其他页面. nginx 的错误代码为 404 not found. 问题举例:我之前做的是自己的一个博客 能够直接访 ...
最新文章
- R语言对dataframe(data.table)数据分层随机抽样实战
- 十三条道德准则-富兰克林
- TypeScript 工具类型 - Utility Types
- 休眠日志:常见问题的提示和解决方案
- 互联网日报 | 6月9日 星期三 | 腾讯发布长中短视频计划;阿里云新增两大海外数据中心;陌陌持续25个季度盈利...
- iptables规则书写总结
- golang 类型说明
- python程序开机自启动_Linux下Python脚本自启动和定时启动的详细步骤
- 计算走线长度_高速走线长度的一些思考
- 温故而知新:new与override的差异以及virtual方法与abstract方法的区别
- 大一新生应该如何学习C语言,书上代码看不懂理解不了怎么办?
- 车辆信息识别 车辆目标检测 车牌识别 车型识别 颜色 朝向 车大小识别
- python学习一点 快乐一点(2)乱序整数序列两数之和绝对值最小
- SQL语句编写经典50题
- 要实现一台电脑可以上公司内网也可以访问外网
- 《OpenDRIVE1.6规格文档》2
- Linux无法显示ip的解决办法
- doom emacs如何安装新插件和自定义快捷键
- 计算机专业在清华学几年,考上清华退学,就为再考清华计算机?
- JXLS-----JXLS简介