tp5路由优化方案及注意事项

admin 发布于 ThinkPhp

tp5中的路由比较灵活,并且不需要强制定义,可以总结归纳为如下三种方式:

一、普通模式

闭路由,完全使用默认的PATH_INFO方式URL。路由关闭后,不会解析任何路由规则,采用默认的PATH_INFO 模式访问URL

'url_route_on'  =>  false,
'url_route_must'=> false,

二、混合模式

开启路由,并使用路由定义+默认PATH_INFO方式的混合

'url_route_on'  =>  true,
'url_route_must'=>  false,

三、强制模式

开启路由,并设置必须定义路由才能访问:

'url_route_on'  =>  true,
'url_route_must'=>  true,

路由定义:方式比较多,可以在route.php中添加路由规则,也可以在application中新建一个route.php文件在添加对应的规则

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

use think\Route;
// 注册路由到index模块的News控制器的read操作
Route::rule('new/:id','index/News/read');

我们访问:

http://serverName/new/5

会自动路由到:

http://serverName/index/news/read/id/5
可以在rule方法中指定请求类型,不指定的话默认为任何请求类型,例如:
Route::rule('new/:id','News/update','POST');
统提供了为不同的请求类型定义路由规则的简化方法,例如:
Route::get('new/:id','News/read'); // 定义GET请求路由规则
Route::post('new/:id','News/update'); // 定义POST请求路由规则
Route::put('new/:id','News/update'); // 定义PUT请求路由规则
Route::delete('new/:id','News/delete'); // 定义DELETE请求路由规则
Route::any('new/:id','News/read'); // 所有请求都支持的路由规则
注意事项:如果定义的路由地址为index/News/read,在html的模板解析时url地址为{:url('index/News/read')},两处地址一定要相同,不然会报错


479浏览量 · 0评论 · 2019-08-12 08:23:50

全部评论  0

注册登录 进行评论

热门专题

更多专题