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面向对象的方法重载两种版本比较
Sep 08 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
Oct 23 PHP
destoon调用自定义模板及样式的公告栏
Jun 21 PHP
php计算函数执行时间的方法
Mar 20 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
PHP类相关知识点实例总结
Sep 28 PHP
你不知道的文件上传漏洞php代码分析
Sep 29 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
PHP+ajax实现获取新闻数据简单示例
May 08 PHP
php实现构建排除当前元素的乘积数组方法
Oct 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
destoon官方标签大全
2014/06/20 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
js实现数组转换成json
2015/06/26 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
Python实现选择排序
2017/06/04 Python
matplotlib绘制动画代码示例
2018/01/02 Python
python读取文件名称生成list的方法
2018/04/27 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
python怎么判断模块安装完成
2020/06/19 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
大学军训通讯稿
2014/01/13 职场文书
教师节促销活动方案
2014/02/14 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
MySQL 如何设计统计数据表
2021/06/15 MySQL
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python