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 相关文章推荐
在PHP3中实现SESSION的功能(二)
Oct 09 PHP
PHP 多维数组排序(usort,uasort)
Jun 30 PHP
网站用php实现paypal整合方法
Nov 28 PHP
php 生成文字png图片的代码
Apr 17 PHP
PHP取得一个类的属性和方法的实现代码
May 22 PHP
总结对比php中的多种序列化
Aug 28 PHP
php版微信小店API二次开发及使用示例
Nov 12 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
PHP RabbitMQ消息列队
May 11 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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
php邮件发送,php发送邮件的类
2011/03/24 PHP
二招解决php乱码问题
2012/03/25 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
Python实现全角半角转换的方法
2014/08/18 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
进程的查看和调度分别使用什么命令
2015/03/25 面试题
大学生学习党课思想汇报
2014/01/03 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
房屋认购协议书
2015/01/29 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python