第七课 路由之路由注册

1 路由注册

定义/概念:

例子:

(1)动态方法

//Route::get('a/:id/:name/','admin/admin/index');
//Route::get('test','index/index/index');
//Route::get('hello', 'index/hello');
Route::get('test/:id/:name','index/index/index');
//Route::get('test/:name','admin/admin/index');
//Route::rule('hello/:name','index/hello','get',['ext' => 'html'],['name' => '\w+']);

(2)配置数组(配置文件方式):

return [
'info/:name' => ['admin/admin/getUserInfo',['method' =>'post','ext' => 'html'],['name' => '\w+']],
'test' => ['index/index/index',['method' =>'post','ext' => 'html']],
'test/:name'=> ['admin/admin/index',['method' =>'post','ext' => 'html'],['name' => '\w+']]
];

1.1动态方法

路由定义采用 \think\Route 类的 rule 方法注册,通常是在应用的路由配置文件

application/route.php 进行注册,Route 类文件位置如下图:

动态方法格式如下:

回到route/route.php中

设置请求的要求,改一下路由规则,同时修改index/demo中的方法

这里我们使用

http://localhost/tp5.1/public/index.php/demo/1  访问会出错

加后缀.html 路由中规定的后缀则可以访问

当请求的参数为非数字时就会出错

通过在route.php中配置的

Route::rule('demo/:name', 'index/index/demo', 'GET', ['ext' => 'html'], ['name' => '\d']);

就是实现了对demo这个方法的控制

除了使用 Route::rule()创建路由外也可以用 get(),post()等创建路由。以demo()这个 方法测试

post|get(‘路由规则’ , ‘路由地址’ , ‘路由参数’ , ‘变量规则’);

当我们使用get的时候 就会发现post请求是不通过,使用get(),post()就是限制请求的方式。

 

Get请求

Route类中的其他方法

Rule() 基本路由注册

Any() 任意请求路由注册

Get() GET请求路由注册

Post() POST请求路由注册

Put() PUT请求路由注册

Patch() PATCH请求路由注册

Delete() DELETE请求路由注册

Alias() 别名路由注册

Group() 路由分组注册

Controller() 控制器方法路由注册

Resource() 资源路由注册

Pattern() 全局路由变量规则注册

1.2配置数组(配置文件方式)

语法规则:

return[

‘路由规则’  =>  ‘路由地址’,

‘路由规则’ => [‘路由地址’  ,[路由参数]  ,[变量规则]]

]

回到route/route.php中

同样这样设置后 info的访问的方式就必须与之前动态注册demo例子一样

1.3路由表达式

常用路由表达式实例:

1.4 

1.5 请求类型

|序号|请求类型|用途|描述

| 1 | GET | 从服务器端获取数据 | 仅查询,不修改,类似:SELECT操作

| 2 | POST | 在服务器端创建数据 | 提交并创建新信息,类似:INSERT操作

| 3 | PUT | 改变服务器端数据 | 仅修改不创建,类似:UPDATE操作

| 4 | DELETE | 删除服务器端资源 | 根据条件删除数据,类似:DELETE

注:***尽管可以在Route::rule()方法中指定请求类型:

Route::rule('demo/:name,'index/index/demo','GET');

但系统还是各种请求类型,定义了快捷方法(静态),详见下表:

 

posted @ 2019-02-07 00:44  努力跟上大神的脚步  阅读(1281)  评论(0)    收藏  举报