路由注册可以采用方法动态单个和批量注册,也可以直接定义路由定义文件的方式进行集中注册。
动态注册 路由定义采用\think\Route类的rule方法注册,通常是在应用的路由配置文件application/route.php进行注册,格式是:
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)'); 例如注册如下路由规则:
use think\Route; // 注册路由到index模块的News控制器的read操作 Route::rule('new/:id','index/News/read');
路由表达式(第一个参数)支持定义命名标识,例如:
// 定义new路由命名标识 Route::rule(['new','new/:id'],'www.benchicnc.com index/News/read'); 注意,路由命名标识必须唯一,定义后可以用于URL的快速生成。
可以在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'); // 所有请求都支持的路由规则