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 相关文章推荐
留言板翻页的实现详解
Oct 09 PHP
一个简单的域名注册情况查询程序
Oct 09 PHP
php 无限级 SelectTree 类
May 19 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
PHP常用文件操作函数和简单实例分析
Jun 03 PHP
[原创]smarty简单模板变量输出方法
Jul 09 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
PHP Trait功能与用法实例分析
Jun 03 PHP
如何重写Laravel异常处理类详解
Dec 20 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的微信公众平台开发入门实例
2015/04/15 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
javascript window.opener的用法分析
2010/04/07 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
Python 3.x 新特性及10大变化
2015/06/12 Python
Python创建xml文件示例
2017/03/22 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
python 写一个水果忍者游戏
2021/01/13 Python
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
庆中秋节主题活动方案
2014/02/03 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
开学典礼策划方案
2014/05/28 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
社保转移委托书范本
2014/10/08 职场文书
公司表扬信格式
2015/05/04 职场文书
同意离婚答辩状
2015/05/22 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
如何利用python实现列表嵌套字典取值
2022/06/10 Python