开启辅助访问
帐号登录 |立即注册

Thinkphp5路由的配置技巧

 
路由注册

一、动态方法:
Route::rule(路由规则路由地址,请求类型路由参数1[变量规则)):

二、配置数组(配置文件方式):
return [
路由规则'=>'路由地址,
路由规则=>[路由地址路由参数][变量规则]];



若要使用路由,那么首先要开启路由,在convention.php文件中默认开启路由。
不过,因为要用到我们的app中,所以需要将开启语句复制到conf/config.php中。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JTRmVlZ2c=,size_16,color_FFFFFF,t_70.jpg
开启路由
一旦设置好路由的规则后并且开启了url_route_must=true,那么访问原来的index/Index/info/id/5就会报错,只能访问news/5。所以,要想原来访问的地址也能访问,就将url_route_must=false

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JTRmVlZ2c=,size_16,color_FFFFFF,t_70.jpg
info方法需要传入形参id


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

动态注册
路由定义采用\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'); // 所有请求都支持的路由规则



回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。