ThinkPHP5.0路由之路由註冊
路由
路由功能由\think\Route類完成
概述
由Think PHP5.0預設採用的URL規則是:
http://server/sodule/controller/action/param/value/.....
路由的作用是簡化URL訪問地址,並根據定義的路由型別做出正確解析。
路由模式
ThinkPHP5.0的路由比較靈活,並且不需要強制定義,可總結為以下三種方式:
一,普通模式
關閉路由,完全使用預設的PATH_INFO 訪問URL;
url_route_on =>false,
路由關閉後,不會解析任何路由規則,採用預設的PATH_INFO模式 訪問URL;
http://server/Name/index.php/module/controller/action/param/value/.....
二、混合模式
開啟路由後並使用路由定義+預設PATH_INFO方式的混合
url_route_on =>true,
url_route_must =>false,
該方法下面,只需要對需要定義路由規則的訪問地址定義路由規則,其他的仍然按照第一種普通模式的PATH_INFO 模式訪問URL.
三、強制模式
開啟路由,並設定必須定義路由才能訪問:
url_route_on =>true,
url_route_must =>true,
這種方式必須嚴格給每一個訪問地址定義路由規則(包括首頁),否則將丟擲異常。
首頁的路由規則採用/定義即可,例如下面把網站首頁由輸出Hello,world!我們現需要在route.php這個檔案中配置路由,要使用官方的use think\Route
Route::get( '/' ,function(){
return 'Hello,world!';
} );
則開啟tp5進行訪問的就是hello world!
路由定義
註冊路由規則
路由註冊可以採用方法動態單個和批量註冊,也可以直接定義路由定義檔案的方式進行集中註冊。
動態註冊
路由定義採用\think\Route
類的rule
方法註冊,通常是在應用的路由配置檔案application/route.php
進行註冊,格式是:
use think\Route; //呼叫Route類方法
Route::rule('路由表示式','路由地址','請求型別','路由引數(陣列)','變數規則(陣列)');
例如註冊如下路由規則:
use think\Route;
// 註冊路由到index模組的News控制器的read操作
Route::rule('new/:id','index/News/read');
我們訪問:
http://serverName/new/5
會自動路由到:
http://serverName/index/news/read/id/5
並且原來的訪問地址會自動失效。
路由表示式(第一個引數)支援定義命名標識,例如:
// 定義new路由命名標識
Route::rule(['new','new/:id'],'index/News/read');
當我們再次到瀏覽器訪問的時候,訪問的是list方法(list.html)\
注意,路由命名標識必須唯一,定義後可以用於URL的快速生成。
可以在rule方法中指定請求型別,不指定的話預設為任何請求型別,例如:(第三個請求型別)
Route::rule('new/:id','News/update','POST');
表示定義的路由規則在POST請求下才有效。
請求型別包括: | 型別 | 描述 |
---|---|---|
GET | GET請求 | |
POST | POST請求 | |
PUT | PUT請求 | |
DELETE | DELETE請求 | |
* | 任何請求型別 |
注意:請求型別引數必須大寫。
系統提供了為不同的請求型別定義路由規則的簡化方法,例如:
Route::get('new/:id','News/read');// 定義GET請求路由規則
Route::post('new/:id','News/update');// 定義POST請求路由規則
Route::put('new/:id','News/update');// 定義PUT請求路由規則
Route::delete('new/:id','News/delete');// 定義DELETE請求路由規則
Route::any('new/:id','News/read');// 所有請求都支援的路由規則
預設訪問read方法
如果要定義get和post請求支援的路由規則,也可以用:
Route::rule('new/:id','News/read','GET|POST');
我們也可以批量註冊路由規則,例如:
Route::rule(['new/:id'=>'News/read','blog/:name'=>'Blog/detail']);
Route::get(['new/:id'=>'News/read','blog/:name'=>'Blog/detail']);
Route::post(['new/:id'=>'News/update','blog/:name'=>'Blog/detail']);
註冊多個路由規則後,系統會依次遍歷註冊過的滿足請求型別的路由規則,一旦匹配到正確的路由規則後則開始呼叫控制器的操作方法,後續規則就不再檢測。
定義路由配置檔案
除了支援動態註冊,也可以直接應用目錄下面的rote.php的最後通過返回陣列的方式直接定義路由規則,內容示例如下:
return [
'new/:id'=> 'index/Index/read',
‘blog/:id' => [ 'Blog/update' ,[ 'method' => 'post|put' ] , [ 'id' => '\d+' ] ],
];
路由動態註冊和配置定義的方法可以並存,由於檢測機制的問題,動態註冊的效能比路由配置更高一些,尤其是多種請求型別混合定義的時候。
預設情況下,只會載入一個路由配置檔案route.php,如果需要定義多個路由配置檔案,可以修改route_config_file的配置引數,如:
// 路由配置檔案(支援配置多個)
'route_config_file' => ['route', 'route1', 'route2'],
時間:2018.4.30
相關推薦
ThinkPHP5.0路由之路由註冊
路由路由功能由\think\Route類完成概述由Think PHP5.0預設採用的URL規則是:http://server/sodule/controller/action/param/value/.....路由的作用是簡化URL訪問地址,並根據定義的路由型別做出正確解析。
vue2.0學習之路由
b- active new com emp post highlight view 沒有 下載vue-router: cnpm install vue-router --save router/main.js /*引入所需要的組件*/ import VueRoute
路由之路由表查詢演算法概述-雜湊/LC-Trie樹/256-way-mtrie樹
引:路由是網際網路的一個核心概念,廣義的講,它使分組交換網的每個節點彼此獨立,通過路由耦合在一起,甚至在電路交換網中,虛電路的建立也依賴路由,路由就是網路中資料通路的指向標。狹義的講,路由專指IP路由,它支撐著整個IP網路。 由於IP是資料報網路,它是
Internet路由之路由表查詢演算法概述-雜湊/LC-Trie樹/256-way-mtrie樹
說明:本文沒有原始碼分析的內容,然而我認為能理解本質比能看懂原始碼更有用,因為理解了本質之後,你也許就不用再看原始碼了,你甚至都可以寫原始碼了。這就是Linux核心和Cisco的網站中包含大量文件的原因。引:路由是網際網路的一個核心概念,廣義的講,它使分組交換網的每個節點彼此獨
thinkPHP5——後端之登入註冊修改使用者資訊
所需檔案如下: 開始專案前,先開啟應用除錯模式(config.php,把false改成true) 一、資料庫 CREATE TABLE `wyt_member` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREME
vue-router(2.0)之什麼是路由以及使用步驟(筆記)
前端路由: 在web開發中,路由是指根據url分配到對應的處理程式 vue-router: 通過管理url實現url和元件的對應和通過url進行元件之間的切換 可以做單頁面應用(SPA):載入單個HTML頁面,並在使用者與應用程式互動時動態更新該頁面 vue-router的使
Spring Cloud Netflix Zuul原始碼分析之路由註冊篇
微信公眾號:I am CR7如有問題或建議,請在下方留言;最近更新:2018-12-29 前言 繼上一篇Spring Cloud Netflix Zuul原始碼分析之預熱篇,我們知道了兩個重要的類:ZuulHandlerMapping和SimpleControllerHandlerA
ThinkPHP5.0.資源路由和快捷路由
具體指向的控制器由路由地址決定,例如上面的設定,會對應index模組的blog控制器,你只需要為Blog控制器建立以上對應的操作方法就可以支援下面的URL訪問:http://serverName/blog/http://serverName/blog/128http://serverName/blog/28/
thinkphp5.0學習(四):入口檔案、路由模式、路由設定和url生成
一、路由的作用 簡化URL地址,方便記憶 有利於搜尋引擎的優化 二、入口檔案 前後臺分離 在網站public目錄下(專案\public)新建admin.php 開啟admin.ph
Spring Cloud入門教程之路由閘道器 Zuul(五)(Finchley版本+Boot2.0)
路由閘道器什麼是Zuul? Zuul的主要功能是路由轉發和過濾器。路由功能是微服務的一部分,比如/api/payment轉發到到payment服務,/api/login轉發到到login服務。zuul預設和Ribbon結合實現了負載均衡的功能。 zuul有以下功能
android5.0網路之策略路由
策略路由在linux中已經存在很久,但是Android5.0開始才真正將其作用發揮出來。這裡主要簡單介紹下策略路由。 策略路由區別於一般的路由就在於,一般的路由是以目的地址作為識別與區分的標識,例如下面這個路由表,它表示所有目的地址為192.168.7.0/24的資料包都直
ThinkPHP5.0路由詳細解答5
快捷路由快捷路由允許你快速給控制器註冊路由,並且針對不同的請求型別可以設定方法字首,例如:Route::controller('user','index/User');User控制器定義如下:namespace app\index\controller;classUser{p
Vue2.0 探索之路——vue-router入門教程和總結 二級路由
https://blog.csdn.net/sinat_17775997/article/details/77823455https://www.cnblogs.com/songdongdong/p/7121014.html前言這是關於vue的第三篇博文。https://se
ThinkPHP5之路由
路由的作用: 1. 簡化URL地址,方便大家記憶 2. 有利於搜尋引擎的優化,比如可以被百度的爬蟲抓取到 優化URl 1. 前後端分離 修改入口檔案,在public下新建admin.php檔案,將下面的程式碼新增進入 // 定義應用目錄 defi
Thinkphp5筆記八:路由別名Route
d+ oca 控制 edi code dmi 控制器 color local 主要作用:隱藏自己的真實路由名稱 Route.php 使用方法一: <?php use think\Route; Route::alias(‘home‘,‘index/index‘);
Thinkphp5筆記九:路由設置,隱藏indx.php
http pre color follow style write blog gin views 網站根目錄下.htaccess <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews Rewr
Cisco之路由重分發
cisco 路由重分發 在一個大型網絡中可能存在著多種路由協議,因此關系到路由重分發的問題。網絡架構如下圖所示:架構說明:1 R1為總公司路由器;2 R2、R5為上海分公司路由器;3 R3、R4為杭州分公司路由器;4 總公司和分公司之間使用OSPF協議,上海分公司使用RIP協議,而杭州分公司使用靜態
ci 3.0 默認路由放在子文件夾 無法訪問的解決辦法
字符 spa 分享 eth 賦值 details nbsp cto -c 本文轉自:http://blog.csdn.net/sinat_37328421/article/details/69267166 比方說你想配置默認路由為: $route[‘
yii2.0如何優化路由
tac con tty enable gin 2.0 sym yml dex 比如我的路由是 http://localhost/basic/web/?r=site/index 現在想改成 http://localhost/basic/web/site/index 的
背水一戰 Windows 10 (69) - 控件(控件基類): UIElement - Manipulate 手勢處理, 路由事件的註冊, 路由事件的冒泡, 命中測試的可見性
alex remove void express 簡單 let win 位置 edr [源碼下載] 背水一戰 Windows 10 (69) - 控件(控件基類): UIElement - Manipulate 手勢處理, 路由事件的註冊, 路由事件的冒泡, 命中測試的可