<TP5之URL路由篇章>

TCP/IP协议栈之LwIP(三)---网际寻址与路由(IPv4 + ARP + IPv6) 一、网际寻址原理 当网络设备地址总数并不是很多的情况下,有了唯一地址(比如MAC地址)就可以定位相互通信的主体。然而,当地址总数越来越多时,如何高效地从中找出通信的目标地址将成为一个重要的问题。为此人们发现地址除了具有唯一性还需要具有层次性。MAC地址虽然具有唯一性,但没有层次性,也即当网络设备增加到一定程度,需要将网络分成多个数据链路时,MAC地址无法跨链路寻址,是真正负责最终通信的地址。要实现跨局域网的网际寻址,就要靠具有层次性的网络IP地址实现了。 阅读详情

入口文件

我们都知道thinkphp是一个单入口框架,它所有的请求都通过public/index.php进入,之后通过携带不同的参数,转发到相应的控制器中来实现不同的功能。

 

单入口文件:应用程序的所有http请求都由某一个文件接受并由这个文件转发到功能代码中

单入口优势:

       安全监测(如果是多入口我们就需要在每个入口文件中做相应的安全监测)

       请求过滤(在我们的入口文件中,我们可以过滤掉某些无效的请求,如果是多入口就需要重复这个功能)

现在我们看一下入口文件:

我们打开thinkphp/base.php,里边都是定义的常量

public/index.php中的那个  __DIR__常量在thinkphp/base.php可看见是指框架的根目录,即thinkphp

在这里我们可以改变一些系统默认的配置,也就是一些常量的配置

入口文件绑定

当我们在当前目录下有一个index.php,如果我们正常情况下,我们默认访问的是index模块下的Index控制器下的index方法,如果我们现在想访问index.php或者是我们在这个地方再新建一个其它的文件,我们能不能将这个文件,直接绑定到某个模块,而把我们URL上的模块名简化更方便我们输入呢?其实thinkphp为我们准备了入口文件绑定的方法

当我们输入localhost/ThinkPHP5.0/public时,默认访问的是index模块下的Index控制器下的index方法

而当我们在入口文件(public/index.php)中添加如下代码(也就是定义一个常量)

这个时候默认访问的就是admin模块下的Index控制器下的index方法


现在,如果我们想为我们的网站提供一个接口,比如说我这个网站想开发一些数据给第三方,我可能需要给第三方提供一些接口,所以这个时候我就不需要它再访问我的index.php文件,我可能让它直接进入我们的api.php(public/api.php)

如果我的网站开发给第三方,那么我肯定不期望第三方访问我的index模块和admin模块,这样我们只需要在api.php中绑定api模块,这样我们访问api.php直接访问api模块,别的模块访问不了

 

关与这种情况,thinkphp还给我们提供了另外一种方式。在thinkphp/convention.php中有一个

我们将它拷贝到应用配置文件中,它默认是false,我们现在给它修改成true

修改之后要想生效,我们需要创建一个与api.php文件名相同的模块

这个时候我们再创建一个api模块

这个时候我们再访问api.php,就会发现访问的是api/Index/index

分析一下流程:如果我们开启了入口文件自动绑定这个操作(即’auto_bind_module’=> true),在我们的目录下有这个php文件,那么它会访问和这个php文件名相同模块,比如说我们有api,那么我们访问的就是api这个模块,所以我们默认的不需要传递第一个模块名,也就是说不需要传递第一个参数,它能够直接访问

比如我们想访问api/Index/demo方法,我们在浏览器中直接访问localhost/Thinkphp5.0/index.php/Index/demo即可,不用加上api了

路由

它是为了美化URL,简化用户的访问

下面我们直接写代码来看路由是如何使用的

我们首先在index/Index控制器下新加一个一个info()方法(给该函数传递一个参数)

那么我们访问这个info方法的时候应该这样写

localhost/ThinkPHP5.0/public/index.php/index/Index/info/id/5

如果我们想将当期的访问简化,变成这样localhost/ThinkPHP5.0/public/news/5.html

这里我们就需要引入路由的概念。如果我们想起用路由,就需要进行配置

首先打开thinkphp/convention.php找到url_route_on和url_route_must,将其拷贝到我们的应用配置config.php

然后我们在conf文件夹下创建一个route.php文件,也就是路由配置,在里边写一下访问的规则

这个时候我们再去浏览器中访问

如果我还用刚才的方法进行访问

按照配置那样访问

这样就对了。

使用路由还有一个好处,看下面的截图

如果我们将这里的index方法改成info,也就是说我们想直接使用url()这个助手函数,输出我们当前控制器的路由,我们会看到

也就是说,它会根据我们的路由规则生成相应的url

然后我们再看一下’url_route_must’

如果现在我们要访问index/Index/demo(),我们可以使用这样的方式

如果这个时候我们将’url_route_must’改成true,此时再刷新那个页面,就会报错了

因为改了’url_route_must’为true之后意思就是说,我们所有的url必须通过路由的方式来访问。如果我们想要我们刚才的那个Index/demo()生效的话,就在route.php中添加一下配置就好了

如果将’url_route_must’为true,那么thinkphp的默认路由访问规则就会失效,所以我们一般将它设置为false

这样我们就可以不配置路由,通过默认的方式进行访问

 

其实这里的news我们也可以改,比如说改成posts

东方财富网 数据访问接口及字段说明 东方财富网 数据访问接口和字段说明 阅读详情

相关推荐

ANSYS二次开发:Python和ANSYS进行交互操作(PyAnsys库,DPF)

🎈ANSYS二次开发:APDL开发入门准备🎈- 🎈ANSYS二次开发:后处理使用APDL命令流解析结果文件🎈 🎈ANSYS二次开发:Python解析ANSYS结果文件(PyAnsys库)🎈 🎈ANSYS二次开发:Python操作ANSYS(PyAnsys库,PyDPF)🎈 文章目录1、简介2、安装2.1 ansys-mapdl-core2.2 pyaedt2.3 ansys-dpf-core2.4 ansys-dpf-post2.5 ansys-mapdl-reader2.6 G...

爱看书的小沐 2万+

《TP5.0学习笔记---URL和路由篇》

入口文件 我们都知道thinkphp是一个单入口框架,它所有的请求都通过public/index.php进入,之后通过携带不同的参数,转发到相应的控制器中来实现不同的功能。   单入口文件:应用程序的所有http请求都由某一个文件接受并由这个文件转发到功能代码中 单入口优势:        安全监测(如果是多入口我们就需要在每个入口文件中做相应的安全监测)        请求过滤(在我

self_realian的博客 1万+

有关SPSS中Fisher精确检验无法进行的解决方法(由于无法打开临时文件,因此无法进行计算)

最近在帮一个四年生完成她的毕业论文,在用SPSS进行R×C表检验的时候,发现Fisher精确检验的结果无法显示,提示为“由于无法打开临时文件,因此无法进行计算”,大概像下图一样。 (这图是从网上找的) 然...

chuyang37的博客 3万+

TP5 url链接(带参数)的写法

{:url('Liuyan/add')} 例子:

php菜鸟技术天地 7万+

Kisssoft软件在行星齿轮设计上的初试

行星齿轮传动与链传动相比较,具有质量小,体积小,承载能力强,传动比大,传动效率高等优点,但在行星齿轮传动种种优点下,不可避免的带来一些缺点,对其材料的要求过高,在追求传动比大而体积小的同时,其传动结构大大的复杂化,以及在制造和安装过程中较困难,对于行星齿轮传动设计来说,不仅应该了解其优点,而且应该在设计中,充分发挥其优点,且把其缺点降低到最低的限度。从而才能设计出性能优良的行星齿轮传动装置,为我们赛车提供更加强大的动力保证。 Kisssoft软件为我们行星齿轮传动设计提供了一体化方案,从设...

m0_69808569的博客 1万+

手把手教你用QEMU虚拟化华为路由器固件(附完整网络配置指南)

本文提供了一份详尽的QEMU虚拟化华为路由器固件的实战指南。从固件解包、网络桥接配置到QEMU虚拟机启动,手把手教你搭建完整的嵌入式设备沙箱环境,特别适合安全研究、逆向分析和学习嵌入式系统工作原理。

tgb3456789的博客 937

thinkphp5 URL和路由的功能详解与实例

文章出处:https://www.jb51.net/article/131549.htm URL访问 ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作,下面是一个标准的URL访问格式: ? 1 http://domainName/index.php/模块/控制器/操作 ...

写bug写惯了 4776

UE5Could not be compiled. Try rebuilding from source manually.

UE5Could not be compiled. Try rebuilding from source manually.

weixin_45417260的博客 2770

tp5获取URL路径

【代码】tp5获取URL路径。

qq_21810059的博客 651

倍福控制第三方伺服走CSV模式--以汇川伺服为例

在使用TwinCAT软件控制标准CiA402协议的EtherCAT伺服时使用TwinCAT软件NC自带的运动控制指令控制伺服,此时伺服驱动器一般工作在CSP/CSV/CST模式。最常见伺服驱动器工作在CSP模式,轨迹规划运行在TwinCAT软件,位置环速度环电流环运行在伺服驱动器中。该模式下速度波动较大,需要极度平稳的速度需要采用CSV模式。本文讲述的是伺服驱动器工作在CSV模式,此时轨迹规划和位置环均运行在TwinCAT软件,速度环电流环运行在伺服驱动器中。为了简化文字描述,本文采用图文结合的方式介绍伺服

weixin_41883890的博客 4848

全局–局部傅里叶神经算子(GL-FNO):原理、严格推导与 PINN 混合策略

本文提出了一种全局-局部傅里叶神经算子(GL-FNO)及其与物理信息神经网络(PINN)的结合方法。主要内容包括: 架构设计:GL-FNO包含两个分支 - 全局分支处理低频结构,使用下采样输入;局部分支处理高频细节,使用全分辨率输入。两分支通过自适应门控机制融合。 理论分析:证明了GL-FNO在"低频全局+高频局部"任务上的优势,给出了误差分解和复杂度分析,并推导了与PINN结合时的渐进一致性条件。 实现方法:采用频谱微分计算物理残差,推导了完整的训练流程,包括数据损失与物理损失的联合优

VectorShift的博客 1332

php tp5 url拼值,TP5中URL访问模式的解析

这篇文章给大家介绍的内容是关于TP5中的URL访问模式,有着一定的参考价值,有需要的朋友可以参考一下。1. PATH_INFO关闭路由,在application/config.php中找到url_route_must(默认为false),设置为false。路由关闭后,不会解析任何路由规则,采用默认的PATH_INFO模式访问URL:2. 混合模式开启路由,并使用路由定义+默认PATH_INFO方式...

weixin_36439236的博客 562

【系统架构设计师】2026年上半年真题论文:论高并发系统的设计与实践

本文围绕高并发系统架构设计展开,重点论述了电商秒杀系统的实战经验。文章采用"痛点-解决方案-效果"的逻辑结构,从缓存设计、异步处理、限流降级、数据库优化等6个维度详细阐述了应对高并发的技术策略。其中,重点介绍了多级缓存体系、基于消息队列的异步处理机制和微服务拆分实践,并辅以实际案例说明如何解决超卖、缓存雪崩等典型问题。全文强调高并发设计需要系统性思维,通过空间换时间、异步换吞吐、横向换能力等原则,最终实现系统吞吐量从500TPS提升至20000TPS的性能突破。

数据知道的博客 1157

TP5路由知识简单个人汇总

一、路由的模式 普通模式(默认pathinfo,不解析路由) ‘url_route_on’ => false 混合模式(pathinfo+解析路由) ‘url_route_on’ => true, ‘url_route_must’=> false, 强制模式(必须路由) ‘url_route_on’ => true, ‘url_route_must’ =...

xiedongze__的博客 4364

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

学习笔记-TP5框架学习笔记\(路由\)

TP5框架简单理解 (PS:只做粗略、关键知识的记录,TP程序的开始。详情请阅读官方手册) 1. 架构总览 TP程序的开始 PHP >=5.3.0, PHP7 ThinkPHP5.0应用基于MVC(模型-视图-控制器)的方式来组织。 MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理...

ai agent 1704

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

tp5.0路由的学习

5.0.24版本 路由自己概括为三种 配置文件(三种模式的区别无非就是配置上的区别) application/config.php 普通模式: 'url_route_on' => false, //开启路由设置 'url_route_must'=> false, //必须使用路由 混合模式(tp5.0.24默认) 'url_route...

寂寥人生 534

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

tp5.0笔记1:url和路由

laravel技术交流群 :784030154 1.默认访问index/index/index 2.url访问时,其中控制器和操作名不区分大小写,针对控制器使用大驼峰命名方式,例如HelloWorld,则默认正确的访问url为index/hello_world/index,如将配置文件中的'url_convert'=>false,关闭url自动转换,则可使用index/HelloWorl...

一路向前 1297

TP5框架URL重写,简化url(隐藏入口文件)

1、httpd.conf配置文件中加载了mod_rewrite.so模块 2、AllowOverride None 将None改为 All 3、确保URL_MODEL设置为2 4、把下面的内容保存为.htaccess文件放到入口文件的同级目录下 这是我的 apache配置文件httpd.conf 配置 #LoadModule reqtimeout_module modules/mod_r

我是纯豆腐的博客 1万+

tp5怎么生成短链接_TP5 url链接(带参数)的写法

{:url('Liuyan/add')}例子:url使用js变量传参方法:content: '{:url('main/editschool')}?id='+data.id,window.location.href="{:url('Index/index')}>"+"/ID/"+ID; //这样可以生成,但url模式改变则不能用window.location.href="{:url('Inde...

weixin_42498003的博客 734

vue查询列表中所有用户信息_vue-element-admin 实现动态路由(从后台查询出菜单列表绑定)...

1. 在路由实例中保留基础路由router/index.js中只需要保留基础路由,其他的都删了2. 获取用户菜单,并保存到Vuex中stroe/modules/user.js中,有个getInfo方法查询用户基本信息,返回了用户的菜单列表// get user infogetInfo({ commit, state }) {return new Promise((resolve, reject) ...

weixin_39893274的博客 1127

ThinkPHP 5.0常用助手函数

ThinkPHP 5.0常用助手函数 总结thinkphp手册,以及自己学习中用到的关于tp5的助手函数 一、url() 一般我们学习中用到url助手函数最多的地方就是跳转页面,最常用的是登录注册,在form表单里使用,下面举一个例子: <form class="register" action="{:url('index/register/doRegister')}" method="POST"> 使用url助手函数时注意:助手函数在模板里调用,前面要加冒号 {:url(‘地址表达式’)};

qq_44023710的博客 2908

think php 路由,ThinkPHP5 路由定义及路由详解(一)

1、路由介绍及路由模式路由可以理解为一种寻径功能模块,比如URL地址里面的index模块怎么才能省略呢,默认的URL地址显得有点长,下面就来说说如何通过路由简化URL访问。ThinkPHP5.0的路由比较灵活,并且不需要强制定义,可以总结归纳为如下三种方式:1.1、普通模式关闭路由,完全使用默认的PATH_INFO方式URL:'url_route_on' => false,路由关闭后,不...

weixin_39642998的博客 806

踩坑tp5-模板视图中js使用{:url()}方法传参问题

于是采用了下面2种方式进行操作,均不能成功解析到id的值,而是直接将变量名拼接成字符串输出。其中有一个应用场景是js的 window.location.href 跳转到指定页面并且传递文章id。最近,在使用tp5搭建个人博客后台踩到了一个坑,在tp5自带的视图模板引擎中。采用下面的拼接方式,则能够正确解析,获取到id的值。

qq_45961915的博客 553

Fastadmin里如何设置URL路由?

fastadmin的application文件夹下面的config.php文件,已经为我们设置好了,请查看这两个配置。 'url_route_on' => true, 'url_route_must'=> false, 这表明,只需要对需要定义路由规则的访问地址定义路由规则,其它的仍然按照第一种普通模式的PATH_INFO模式访问URL。 如果你希望所有的URL路由都完全匹配,

安迪夫的博客 1万+

【语法】tp5的路由,带参数 及 url()的常见使用

需求:js中写php的路由,带参过去思路:改变 路由带参的形式,别用数组形式带参数效果图

西瓜的博客 1万+

TP5学习(三):路由

2、URL访问与路由 3、TP5中的MVC 4、请求 5、数据库 6、模型 7、视图 8、模板 9、日志 10、错误和调试

码农Robin的博客 2423
上一篇: 《TP5.0学习笔记---配置篇》
下一篇: 《TP5.0学习笔记---请求和响应篇》
勋彰
博客等级 码龄9年 36粉丝 53原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值