## 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] 路由模式是我们路由操作的第一课,也是基础课程,一定要完全吃透,否则严重影响到后面的学习~~