版本TP5

TP5 Route

前言

本文我们来研究一下ThinkPHP5的路由机制。

虽然说TP5的完全开发手册上面讲路由讲的很清楚,但是我们还是在本文研究一下TP5的路由是怎么一回事,毕竟看博客比看书要舒服一些嘛。

首先,提出三个问题:

1.Route(路由)是什么?

官方文档里面是这样子定义的=>路由的作用是简化URL访问地址,并根据定义的路由类型做出正确的解析。

手动解释一下:平常我们按照习惯去访问我们的ThinkPHP项目的时候,常规的url应该是这样子写的,(本地举例)http://localhost/项目名/public/index.php/模块名/控制器名/方法名

一串url输进去之后,就会感觉很绝望,(小声吐槽)=>“我只是想测试一个小接口让我打这么长一串地址、地址太长记不住呀......”。这个时候我们就可以用路由去简化他的地址,并且在缩短地址的同时进行一些规则的定义。

2.为什么要使用路由?

可能有人会脱口而出:为了简化路径呀。当然,这是原因之一,但原因并没有那么简单。

简化路径是一个比较大的原因,因为我当初就是觉得路径太长然后跑过去把路由开起来了,但是后来在使用的过程中,发现Route的作用其实不仅局限于简化路径。

我们可以开启路由的强制使用,让大家只能从我定义的路由进来,这样就有一个好处,你在一些不想给用户访问的控制器写了一些脚本,你开启了完全路由强制使用的话,用户是访问不了这些脚本的,否则的话,用户如果访问了这些脚本,脚本有时修改数据库的,那么就比较危险了。

还有就是我们可以定义好从这个路径进来是get操作还是post操作,就不会出现以前有种什么情况,一个控制器的方法,你从get也可以访问,post也可以访问,就很杂乱,当然有人会说,get和post都能访问也没什么大不了的吧,其实将这些方法之间区分开来,对于Restful API的思想的体现是比较有帮助的。

同理,http和https的规定我就不说了。

到了这里,大家是不是觉得路由有些神奇了,原来它可以干这么多事情,那么我们就来研究一下怎么去使用它。

首先进入thinkphp/convention.php进行设置如下:

在进入application/config.php进行设置如下

以上是我们开启了强制使用路由:所以之前的常规的地址访问已经废掉不能用了

现在我们在application/route.php下开始配置新的路由如下:

use think\Route;

//用户接口

Route::get('user','api/index/user');

//轮播图接口

Route::any('file','api/index/file');

//帮助中心接口

Route::any('help','api/index/help');

大功告成然后就可以正常访问了:

thinkphp5 router.php,ThinkPHP5 之route(路由)简述相关推荐

  1. vue中路由传参方式之二(this.$router.push进行编程式路由跳转传参)

    this.$router.push进行编程式路由跳转传参 router中路由配置 组件home点击传参 组件homeDetails接受参数 router中路由配置 params第一种传参路由配置 {p ...

  2. Vue - route路由跳转

    目录 前言 基本路由跳转 router-link 跳转路由 router.push(path) 跳转路由 router.push(name) 跳转路由 嵌套路由跳转 前言 vue中的route实现了从 ...

  3. router、routes、route的区别

    router.routes.route的区别 路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容 ...

  4. php框架 路由_PHP框架开发之Route路由简单实现

    参数Laravel路由的使用方式,来效仿一个简单的路由实现方式class Route { /** * @var $_instance // 实例 */ private static $_instanc ...

  5. vue2.0 + router 3. 0 动态添加路由

    3月11日 周五 作日回顾 .动态添加路由 实现语句 vue 2.0使用 this.$router.addRoutes(); this.$router.addRoutes(currRoutes);// ...

  6. kong笔记——Service、Route路由功能

    kong笔记 目录导航 在上两篇文章,我们主要介绍了kong的概念以及kong的部署,相信大家对kong已经有了基本认识,那么我们该如何使用它呢? kong的功能有许多,我们一个一个来,先从kong的 ...

  7. vue router返回到指定的路由

    vue router返回到指定的路由 一.项目场景 二.问题描述 三.原因分析 四.解决方案 一.项目场景 项目场景:示例:A(商品详情)--B(商品购买页面)-C(支付成功页面)--D(订单页面) ...

  8. tp5.0路由route.php,thinkphp5.1使用Route路由

    一.开启路由 thinkphp的路由一般默认都是开启的,如果没有开启,可以在config.php里添加如下配置: 'url_route_on' => true, //开启路由 'url_rout ...

  9. hitchhiker部署_《 Hitchhiker的React Router v4指南》:路由配置的隐藏值

    hitchhiker部署 Welcome to the Hitchhiker's Guide to React Router v4, Part IV! 欢迎来到< React Router v4 ...

最新文章

  1. 1.1GTK+ 的简单程序HelloWorld
  2. 信息安全从业者必须接受的六个事实
  3. python读取中文txt文本-python读取中文txt文本的方法
  4. jquery隐藏或者显示一个元素
  5. stm32 invalid rom table(转载)
  6. selenium linux 谷歌浏览器,在Linux平台上无法通过Jenkins中的Selenium启动Chrome浏览器...
  7. ios 学习札记 细节(三)
  8. Elasticsearch教程 IK分词器安装
  9. 工业物联网的应用领域和方向
  10. Java SecurityManager getSecurityContext()方法与示例
  11. [Unity][FlowCanvas] 预制体中新建的组件无法拖入 GameObject 类型的黑板的解决办法:关闭预制体之后再打开
  12. Linux 硬中断和软中断
  13. Rails UVA - 514(栈)
  14. 山特UPS电源注意事项
  15. 应用添加分享至微信、QQ和微博
  16. MATLAB获取Excel指定行列数据及删除指定行数据
  17. Android 微信支付的统一下单
  18. 制作独特彩妆美女模特头像照片的PS教程
  19. 爬虫案例之Pubmed数据库下载
  20. 苹果8黑屏无法强制开机_iphonexr突然黑屏无法开机怎么解决?

热门文章

  1. TDirectory.GetParent获取指定目录的父目录
  2. ie 访问 java接口_2019年面试总结,100道Java程序员面试题(含答案)分享
  3. strace ltrace使用
  4. Mac安装Anaconda
  5. Android安全:Hook技术
  6. c++笔试题整理(二)
  7. Android关机流程解析
  8. windows清除记住的密码
  9. SpringBoot之实例程序
  10. Vue之表单rules