当前位置:   article > 正文

快速上手TP5路由_tp5.0中routeroute::rule('/taiyangxingzuo_:id.html',

tp5.0中routeroute::rule('/taiyangxingzuo_:id.html',

一、路由基本形式 Route::rule(‘路由表达式’,‘路由地址’,‘请求类型’);
1)、理解:
路由表达式:你想为路由地址起的名称
路由地址:格式:模块/控制器/操作方法
请求类型:get、post、put、delete 等等
2)、前提:去到application/config.php 配置路由

// 是否开启路由
   'url_route_on'           => true,    // 开启路由
// 是否强制使用路由
'url_route_must'         => false,      // 可以使用 path_info 普通模式也可以使用路由模式
  • 1
  • 2
  • 3
  • 4

3)、进入Route.php 设置路由信息

// 基本路由例子:
// 静态路由 
Route::rule('/','Index/index/index');   // 一旦定义了该方法的路由就不能通过普通方式访问
// 带参数路由
Route::rule('one:id','Index/index/canshu');  // 参数获取直接用  input('id') 获取,不能使用input('get.id'),input(get.id)只能获取?id=10 这种方式
// 带多参数路由
Route::rule('two/:id/:name','Index/index/canshu2');    // 这种情况必须带两个参数,否则报错
Route::rule('three/:id/[:name]','Index/index/canshu3');    // []里面表示为可选参数,不带上也不会报错
// 完全匹配
Route::rule('four$','Index/index/wanquanpipei');    // $ 是截至符,four 后面不能带任何东西,否则报错
//额外带参数
Route::rule('five','Index/index/ewai?id=10&name=张三');    // url 直接带参数,使用input()获取
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4)、路由请求类型:默认是支持全部即*,tp5.0 的请求类型 get post put delete
//例子:表单控制器,有两种情况,一是初次进入页面(get),二是用户提交信息(post),都是在type 控制器完成,那么该控制器必须支持两种请求类型,只设置其中一种都会报错。

 Route::get('leixing','index/index/type');   // 设置get 类型 
 Route::post('leixing','index/index/type');   // 设置post 类型
// 将上面两个路由合并为一个
 Route::rule('leixing/','index/index/type','get|post');
  • 1
  • 2
  • 3
  • 4

5)、对于put 、delete 这种类型的请求怎么模拟呢?

<form action="leixing" method="post">  <!--   表单必须为post类型提交 -->
	<input type="hidden" name="_method" value="put">   <!-- 添加这个隐藏域,value设置为请求类型 -->
 	<input type="text" name="name" id="">
	<input type="submit" value="提交">
</form>
  • 1
  • 2
  • 3
  • 4
  • 5

6)、采用数组形式进行动态批量注册

Route::get([
	'/'=>'Index/index/index',                     // 一旦定义了该方法的路由就不能通过普通方式访问
	'one/:id'=>'Index/index/canshu',            // 参数获取直接用  input('id') 获取,不能使用input('get.id'),input(get.id)只能获取?id=10 这种方式
	'two/:id/:name'=>'Index/index/canshu2',       // 这种情况必须带两个参数,否则报错
	'three/:id/[:name]'=>'Index/index/canshu3',   // []里面表示为可选参数,不带上也不会报错
	'four$'=>'Index/index/wanquanpipei',          // $ 是截至符,four 后面不能带任何东西,否则报错
	'five'=>'Index/index/ewai?id=10&name=张三',   // url 直接带参数,使用input()获取
	'leixing'=>'index/index/type'
]);
Route::post([
	'leixing'=>'index/index/type'
]);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

7)、 配置文件批量注册 (项目首选)

return [
	'/'=>'Index/index/index',       		// 一旦定义了该方法的路由就不能通过普通方式访问   
	'one/:id'=>'Index/index/canshu', 	// 参数获取直接用  input('id') 获取,不能使用input('get.id'),input(get.id)只能获取?id=10 这种方式
	'two/:id/:name'=>'Index/index/canshu2',		// 这种情况必须带两个参数,否则报错
	'three/:id/[:name]'=>'Index/index/canshu3',	// []里面表示为可选参数,不带上也不会报错
	'four$'=>'Index/index/wanquanpipei', 		// $ 是截至符,four 后面不能带任何东西,否则报错
	'five'=>'Index/index/ewai?id=10&name=张三', // url 直接带参数,使用input()获取
	'leixing'=>['index/index/type',['method'=>'get|post']] // 传入数组设置支持两种类型
]; 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

Route::rule('one/:id','Index/index/canshu','get',[],['id'=>'\d{1,3}']);  // 设置id 变量只能是1-3位的数字*/
  • 1

9)、快捷路由:快速给控制器注册路由,并且针对不同的【请求类型】可以设置方法前缀,例如:
// 给User控制器设置快捷路由

Route::controller('user','index/User');   // 只需要在 route.php 中注册一下即可,但是对控制器的方法命名有要求
**控制器格式:请求类型接上方法名**
// 控制器写法
class User
{
	public function getInfo(){ } 
	public function getPhone(){ } 
	public function postInfo(){ } 
	public function putInfo(){ } 
	public function deleteInfo(){ }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

如有不足,请多多指点。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/351314
推荐阅读
相关标签
  

闽ICP备14008679号