thinkphp框架实现路由重定义简化url访问地址的方法分析


Posted in PHP onApril 04, 2020

本文实例讲述了thinkphp框架实现路由重定义简化url访问地址的方法。分享给大家供大家参考,具体如下:

如果按照正常访问的话,则需要输入一长串的url地址,这样会显得十分冗长,我可以可以通过对路由规则的重新定义简化url访问地址。

<?php
namespace app\index\controller;
class Index{
   public function index(){
     return '我是index';
   }
   public function hello($name='World'){
     return  'Hello'.$name.'!';
   }
}
?>

本来的访问路径应该是:

localhost/tp/index.php/index/index/hello

我们在路由定义文件(application/route.php)里面添加一些路由规则,如下:

return [
  // 添加路由规则 路由到 index控制器的hello操作方法' hello/:name' => 'index/index/hello',
];

这是以hello开头的并且带参数的访问都会路由到index控制器的hello操作方法。

此时路径可以写为:

localhost/tp/hello/Thinkphp

此时输出结果为:

HelloThinkphp!

改变路由规则后若使用原来的路径访问方法后,则会出现错误。

但此时有一个问题是,如果访问地址为:

localhost/tp/hello

话,会抛出 模板不存在的错误,因为在访问时,没有传参,而在定义路由规则时,则带有参数。

解决办法是在修改路由规则为:

return [
  // 添加路由规则 路由到 index控制器的hello操作方法' hello/[:name'] => 'index/index/hello',
];

使用[]把路由规则中的变量包起来,就表示该变量为可选,接下来就可以正常访问了。

当name参数没有传入值的时候,hello方法的name参数有默认值World,所以输出的内容为

Hello,World!

除了路由配置文件中定义之外,还可以采用动态定义路由规则的方式定义,例如在路由配置文件(application/route.php)的开头直接添加下面的方法:

use think\Route;
 
Route::rule('hello/:name', 'index/hello');

完成的效果和使用配置方式定义是一样的。

无论是配置方式还是通过Route类的方法定义路由,都统一放到路由配置文件application/route.php文件中

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
如何使用PHP中的字符串函数
Oct 09 PHP
让你的网站首页自动选择语言转跳
Dec 06 PHP
谈谈PHP的输入输出流
Feb 14 PHP
PHP去除数组中重复的元素并按键名排序函数
Aug 18 PHP
php getsiteurl()函数
Sep 05 PHP
PHP开发需要注意的安全问题
Sep 01 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
Jun 21 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
php parse_str() 函数的定义和用法
May 23 PHP
PHP自动载入类文件函数__autoload的使用方法
Mar 25 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 #PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 #PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 #PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 #PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 #PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 #PHP
phpQuery采集网页实现代码实例
Apr 02 #PHP
You might like
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
JavaScript实现简单计算器
2020/03/19 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
python自动化测试之setUp与tearDown实例
2014/09/28 Python
Numpy之random函数使用学习
2019/01/29 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
高级Java程序员面试题
2016/06/23 面试题
在校学生职业规划范文
2014/01/08 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
大学生个人求职信例文
2014/07/07 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
2015年消防工作总结
2015/04/24 职场文书
导游词之江西赣州
2019/10/15 职场文书
SQLServer常见数学函数梳理总结
2022/08/05 MySQL