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 路由使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华罗庚“统筹方法”的局限性——节约时间需
- 下一篇: 建站历程-HTY