Thinkphp5第十七讲:路由之路由注册

本节主要讲解TP5的路由模式以及注册路由规则,本人在项目开发时一般都使用默认模式,如有特殊需求可以自定义路由模式,本节不需要刻意去记,作为工具可以随时翻看,会用即可。

一、路由模式

1、普通模式。关闭路由完全使用默认的PATH_INFO方式,即

http://server/module/controller/action/param/value/......

在config.php中设置,URL设置

‘url_route_on’=>false,

2、混合模式。开启路由,并使用路由定义和默认的PATH_INFO混合,即

在config.php中设置,URL设置

‘url_route_on’=>true,

'url_route_must'=>false,

该方式下面,只需要对需要定义路由规则的访问地址定义路由规则,其他的仍然按照第一种普通模式。

3、强制模式。开启路由,并设置必须定义路由才能访问,即

在config.php中设置,URL设置

‘url_route_on’=>true,

'url_route_must'=>true,

这种方式下面必须严格给每一个访问地址定义路由规则(包括首页),否则将抛出异常。

例:把网站首页路由输出Hello,world!

先如上配置,再在application/route.php中添加

<?php

use think\Route

Route::get('/',function(){

return 'Hello,world!';  //首页的路由规则采用“/”定义

});

?>

二、注册路由规则

路由注册可以采用方法动态单个和批量注册,也可以直接定义路由定义文件的方式进行集中注册。

1、动态注册

采用\think\Route类rule方法注册,在应用的路由配置文件application/route.php进行注册

格式:Route::rule('路由表达式',‘路由地址’,‘请求类型’,‘路由参数即数组’,‘变量规则即数组’);

例:在application/route.php中

use think\Route;

Route::rule('new/:id','index/Index/list');

访问http://serverName/new/5

会自动路由到http://servername/index/index/list/id/5

简化方法

Route::get('new/:id','News/read/list');  模块/类/方法

........post(.........)

........put(..........)

........delete .....)

........any(.........)//所有请求都支持的路由规则

2、另一种方法,定义路由配置文件

可以直接在route.php的最后通过返回数组的方式直接定义路由规则。

return[

'new/:id'=>'New/read/list',

.....................................,

];

另,默认情况下,只会加载一个路由配置文件route.php,如果要定义多个路由文件,可以修改route_config_file的配置参数。

例:'route_config_file'=>['route','route1','route2'],

方法1和方法2可以并列存在。

 欢迎QQ扫码入群,我们共同学习。

Thinkphp5第十七讲:路由之路由注册