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 相关文章推荐
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
php读取mssql的ntext字段返回值为空的解决方法
Dec 30 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
Jun 23 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
开启PHP的伪静态模式
Dec 31 PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
PHP封装的非对称加密RSA算法示例
May 28 PHP
php模拟实现斗地主发牌
Apr 22 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
Aug 03 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 set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
PHP 数组基础知识小结
2010/08/20 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
PHP经典面试题集锦
2015/03/19 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
js省市区级联查询(插件版&amp;无插件版)
2017/03/21 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
Web服务器框架 Tornado简介
2014/07/16 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
简单实现python聊天程序
2018/04/01 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
澳大利亚领先的女帽及配饰公司:Morgan&Taylor
2019/12/01 全球购物
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
Java中实现多态的机制
2015/08/09 面试题
2015年药店店长工作总结
2015/04/29 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
导游词之山西关帝庙
2019/11/01 职场文书