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 相关文章推荐
Wordpress php 分页代码
Oct 21 PHP
一个PHP的远程图片抓取函数分享
Sep 25 PHP
使用ob系列函数实现PHP网站页面静态化
Aug 13 PHP
php从memcache读取数据再批量写入mysql的方法
Dec 29 PHP
Symfony页面的基本创建实例详解
Jan 26 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
PHP+Ajax+JS实现多图上传
May 07 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
May 06 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编码规范之注释和文件结构说明
2010/07/09 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
PHP中“=&gt;
2019/03/01 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
JS加ASP二级域名转向的代码
2007/05/17 Javascript
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
javascript 读取图片文件的大小
2009/06/25 Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
node.js实现端口转发
2016/04/14 Javascript
JS简单获取日期相差天数的方法
2017/04/24 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
python正则表达式之作业计算器
2016/03/18 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
python里运用私有属性和方法总结
2019/07/08 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
毕业生找工作的自我评价
2013/10/18 职场文书
教师评优事迹材料
2014/01/10 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
期中考试后的感想
2015/08/07 职场文书
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android