## 1. 路由模式
>[success] ### 图一:路由模式思维导图
![](https://box.kancloud.cn/2096dfb59581860abf6f6811ccdfffcd_979x629.png)
* * * * *
>[success] ### 图二:URL参数解析思维导图
![](https://box.kancloud.cn/b0397220b02922a0766636a31cff0133_847x267.png)
####本教程全部采用按顺序解析参数,这与是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] 路由模式是我们路由操作的第一课,也是基础课程,一定要完全吃透,否则严重影响到后面的学习~~