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+XML 制作简单的留言本 图文教程
Nov 02 PHP
php定时删除文件夹下文件(清理缓存文件)
Jan 23 PHP
Javascript与PHP验证用户输入URL地址是否正确
Oct 09 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
PHP常用设计模式之委托设计模式
Feb 13 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
分享PHP-pcntl 实现多进程代码
Sep 30 PHP
thinkphp整合微信支付代码分享
Nov 24 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
Feb 15 PHP
PHP实现简单计算器小程序
Aug 28 PHP
PHP设计模式之模板方法模式实例浅析
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中的PHP_EOL换行符详细解析
2013/10/26 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
php实现建立多层级目录的方法
2014/07/19 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
解析vue中的$mount
2017/12/21 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
js实现查询商品案例
2020/07/22 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
python连接oracle数据库实例
2014/10/17 Python
Python Django使用forms来实现评论功能
2016/08/17 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
Python常用库大全及简要说明
2020/01/17 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
String这个类型的class为何定义成final?
2012/11/13 面试题
应届本科生推荐信范文
2013/12/25 职场文书
先进党支部事迹材料
2014/01/13 职场文书
班级聚会策划书
2014/01/16 职场文书
搞笑获奖感言
2014/01/30 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
分家协议书
2014/04/21 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python