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扫码入群,我们共同学习。