tp5的路由原理和定义是什么?怎样使用?
Admin 2021-05-14 群英技术资讯 703 次浏览
tp5框架的路由原理是什么?很多新手对于路由不是很清楚,下面小编就大家通俗化的介绍一下,对tp5框架的路由原理和用法感兴趣的朋友可以看看这篇,下面就跟随小编一起来看看吧。
概括的说:路由就是网络请求的url与thinkphp应用层的逻辑处理地址的对应关系。通俗的说:路由就是把url的请求优雅的对应到你想要执行的操作方法。
路由其实就是把真实的url地址隐藏起来,使用访问地址来访问应用(网站或OA等)。通常这样定义:“访问地址”=》“真实地址”,这代表了一种映射关系。就好比用“1”代表去肯德基吃饭,用“0”代表去麦当劳吃饭,你预先告知过同事这个规则的话,只需要发送“1”或“0”给同事,同事就能理解要去哪里吃饭,一个道理。
路由的规则是thinkphp规定好的,比如TP的访问规则是:根目录/模块/控制器/方法,那么我们只需要定义一下映射关系“reg”=》“index/user/reg”,此时只需要再浏览器输入“域名/reg”就能访问“index模块/user/控制器/reg方法”这个地址了。
这样的优点:
1、没有处理过的url路径都是由 ...模块/控制器/方法/参数 构成,如果不加以“掩饰”的话,会被别人看清内部结构,不够安全。
2、可以让url地址更加简洁、优雅、美观。
通常是在应用的路由配置文件application/route.php进行注册。
admin/Admin/test方法:
public function test() { echo 'i am test <br>'; print_r(input()); }
示例如下(注意接收的参数):
示例二:
关于定义路由后,url的生成:url()方法里,url('index/blog/read','id=5&name=thinkphp');
模块、控制器要写全,不然会出错。例如:
Route::group('show', [ 'page/:id' => ['index/Page/show'], 'cate/:id' => ['index/Cate/show'], ], ['method' => 'get'], ['id' => '\d+']);
<a href="{:url('Page/show',['id'=>$cate['id']])}" rel="external nofollow" >
Href生成=》http://cms.com/index/page/show/id/65.html
动态注册:
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)'); 或者简化方法: Route:: get(路由规则, 路由地址, 路由参数, 变量规则)
批量注册:
Route::rule([ '路由规则1'=>'路由地址和参数', '路由规则2'=>['路由地址和参数','路由参数(数组)','变量规则(数组)'] ... ],'','请求类型','匹配参数(数组)','变量规则');
注意:
混合模式下,注册路由后,原来的访问地址会自动失效~
每个参数中以“:”开头的参数都表示动态变量,并且会自动绑定到操作方法的对应参数。
注册多个路由规则后,系统会依次遍历注册过的满足请求类型的路由规则,一旦匹配到正确的路由规则后则开始调用控制器的操作方法,后续规则就不再检测。
路由绑定
入口文件绑定模块后,再定义路由规则,就不需要加模块名称了。
// [ 应用入口文件 ] //绑定admin模块 define('BIND_MODULE', 'admin');
// 给登录url定义路由 Route::rule('login', 'Login/index');
注意: define(‘BIND_MODULE', ‘index/index');绑定到控制器时,控制器名称index要小写,大写会post不成功。。。
关于路由到动态的模块、控制器或者操作
'show/:action/:id' => ['index/:action/show', ['method' => 'get'], ['id' => '\d+', 'action' => '\w+']],
这两个都能访问成功??wtf?why?
http://cms.com/show/page/69 http://cms.com/index/page/show/id/69.html
明白一点了,不能这样写,可选参数只能放到路由规则的最后,如果在中间使用了可选参数的话,后面的变量都会变成可选参数。
路由别名
似乎使用路由别名后,原pathinfo并不会失效~
现在大家对于tp5框架的路由原理和用法应该都清楚了,文本代码具有一定的借鉴价值,供大家参考学习,希望对大家有帮助,更多tp5框架的路由内容可以关注其他文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章给大家分享的是有关laravel请求参数校验的方法。小编觉得挺实用的,因此分享给大家做个参考,有这方面学习需要的朋友可以参考参考,下面跟随小编一起来了解一下吧。
牢记这个优化处理不失为 一个好主意,因为并不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商(ISPs)和服务器。mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%。
在thinkphp中,R方法用于调用某个控制器的操作方法,是A方法的进一步增强和补充,R方法的调用格式为“R('[项目://][分组/]模块/操作','参数','控制器层名称')”。
今天小编就为大家分享一篇laravel-admin 实现在指定的相册下添加照片,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这篇文章主要介绍了Laravel框架实现的批量删除功能,结合实例形式分析了Laravel框架批量删除功能相关的前端界面布局及后台控制器实现技巧,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008