## 1. 路由模式
>[success] ### 圖一:路由模式思維導圖

* * * * *
>[success] ### 圖二:URL參數解析思維導圖

####本教程全部采用按順序解析參數,這與是ThinkPHP5推薦的方式
>[success] ###備注: 路由模式與參數解析配置,均在應用配置文件:/applicaion/config.php中完成
* * * * *
### **準備工作:**
>[info] 為便于教學,我們先將控制器對應方法和路由配置文件準備好~
#### 第一步:創建控制器:/application/index/controller/Index.php
> 在Index控制器中創建demo方法,僅根據參數輸出一段歡迎信息
~~~
<?php
namespace app\index\controller;
//導入路由類
use think\Route;
class Index
{
//創建demo方法,輸出歡迎信息
public function demo($study='kancloud', $name='php')
{
return '歡迎來'.$study.'學習'.$name.'開發技術~~';
}
}
~~~
* * * * *
#### 第二步:創建路由配置文件:/application/route.php
> route.php文件,僅當系統路由功能開啟時,才有效
~~~
<?php
use think\Route;
//創建規則[demo/],后面有二個可選參數,替換掉原來較長的URL地址
Route::rule('demo/[:study]/[:name]','index/Index/demo/');
~~~
>[info] ### 準備工作結束,下面進入路由模式的講解~~
* * * * *
### 1-1. 普通模式
>[info] 普通模式,又叫常規模式或傳統模式,就是不開啟路由功能時訪問模式。
* * * * *
>[warning] ###**更次強調,不開啟路由,并不影響項目的正常運行!**
* * * * *
#### 第一步: 修改路由配置:
>[info] 應用配置文件: /application/config.php
~~~
// 關閉路由
'url_route_on' => false,
// URL參數傳遞方式:按順序解析
'url_param_type' => 1,
~~~
* * * * *
#### 第二步:訪問方式:
>[info] 這里的訪問,其實質:就是訪問指定的方法,并傳入正確的參數
~~~
http://tp5.com/index.php/index/index/demo/lidaketang/thinkphp5
~~~
> 普通模式:按PATH_INFO方式訪問demo方法,按按順序傳入參數lidaketang和thinknphp5
* 輸出結果如下:
~~~
歡迎來lidaketang學習thinkphp5開發技術~~
~~~
* * * * *
### 1-2. 混合模式
>[info] 混合模式,又叫兼容模式。是指:雖然開啟了路由功能,但并不強制使用。
>此時,對同一方法(如demo),即可以用普通模式訪問,也可以用路由模式訪問。
#### 第一步: 修改路由配置:
>[info] 應用配置文件: /application/config.php
~~~
// 開啟路由
'url_route_on' => true,
// 不強制使用路由
'url_route_must' => false,
// URL參數傳遞方式:按順序解析
'url_param_type' => 1,
~~~
> 注意:這里我們僅僅只開啟了路由`'url_route_on' => true`,其它參數保持不變。
#### 第二步:訪問方式:
>[info] 訪問方式1:普通模式(PATH_INFO)
~~~
http://tp5.com/index.php/index/index/demo/lidaketang/thinkphp5
~~~
* 輸出結果如下:
~~~
歡迎來lidaketang學習thinkphp5開發技術~~
~~~
>[info] 訪問方式2:路由模式(ROUTE)
~~~
http://tp5.com/demo/lidaketang/thinkphp5
~~~
* 輸出結果仍然是:
~~~
歡迎來lidaketang學習thinkphp5開發技術~~
~~~
>[success] 這是最靈活的一種訪問方式,也是ThinkPHP5推薦使用的模式~~
* * * * *
### 1-3. 強制模式
>[info] 強制模式:也叫嚴格模式。此時,我們只能使用路由規則訪問方法,普通模式失效~
#### 第一步:修改路由配置:
>[info] 應用配置文件: /application/config.php
~~~
// 開啟路由
'url_route_on' => true,
// 強制使用路由
'url_route_must' => true,
// URL參數傳遞方式:按順序解析
'url_param_type' => 1,
~~~
> 注意: 要將`'url_route_on'`和`'url_route_must' `全部設置為:`true`,其它不變。
#### 第二步:訪問方式:
>[info] 注意:此時只能使用路由模式訪問demo方法,不能再用普通模式(PATH_INFO)訪問啦~
~~~
http://tp5.com/demo/lidaketang/thinkphp5
~~~
* 輸出結果仍然是:
~~~
歡迎來lidaketang學習thinkphp5開發技術~~
~~~
>[success] 強制模式,將是本教程使用的模式,主要是為了教學方便,以后在開發過程,究竟用哪個,還要看項目需求!
* * * * *
## 總結
>[info] 路由模式是我們路由操作的第一課,也是基礎課程,一定要完全吃透,否則嚴重影響到后面的學習~~