日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

ThinkPHP 路由使用

發布時間:2024/1/18 php 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 路由使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。