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 模拟登陆MSN并获得用户信息
May 16 PHP
php Undefined index的问题
Jun 01 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 PHP
PHP stripos()函数及注意事项的分析
Jun 08 PHP
php遍历CSV类实例
Apr 14 PHP
Cygwin中安装PHP方法步骤
Jul 04 PHP
详解PHP的Yii框架的运行机制及其路由功能
Mar 17 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
May 08 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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实现WEB动态网页静态
2006/10/09 PHP
php笔记之常用文件操作
2010/10/12 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
php中文验证码实现方法
2015/06/18 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
python中的yield使用方法
2014/02/11 Python
Python入门篇之字符串
2014/10/17 Python
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
在PyCharm中实现添加快捷模块
2020/02/12 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
南京迈特望C/C++面试题
2012/07/09 面试题
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
工作会议方案
2014/05/21 职场文书
工商局个人工作总结
2015/03/03 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书