ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解


Posted in PHP onApril 03, 2019

本文实例讲述了ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面。分享给大家供大家参考,具体如下:

【演示准备】

    首先下载了一个ThinkPHP3.2.3,目录结构如下:(只有Home模块、Index控制器、index操作方法)

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

    然后找了一个简易的错误404页面404.html放到了根目录:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

【空模块】

访问一个不存在的模块Admin,错误提示:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

 修改根目录下 ThinkPHP/Library/Think/Dispatcher.class.php 178行代码:

// E(L('_MODULE_NOT_EXIST_').':'.MODULE_NAME);
header("Location: /404.html");
exit();
再次访问空模块:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

【空控制器】

访问Home模块不存在的控制器User,错误提示:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

查看根目录下 ThinkPHP/Library/Think/App.class.php 101行前后代码:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

通常的处理方法是:在当前模块下新建一个Empty控制器,在里面做404跳转(A方法实例化Empty控制器)。

EmptyController.class.php:

<?php
namespace Home\Controller;
use Think\Controller;
class EmptyController extends Controller {
  public function index() {
    header("Location:/404.html");
    exit();
  }
}

再次访问空控制器:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

 【空操作】

访问Home模块下Index控制器不存在的test操作方法,错误提示:

 ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

查看根目录下 ThinkPHP/Library/Think/Controller.class.php 170行前后代码: 

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

通常的处理方法是:在当前模块下新建一个Public控制器(继承Controller),在里面定义_empty方法跳转404页面, 然后其他控制器再继承Public。

PublicController.class.php:

<?php
namespace Home\Controller;
use Think\Controller;
class PublicController extends Controller {
  public function _empty() {
    header("Location:/404.html");
    exit();
  }
}

Index控制器继承Puclic:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

再次访问空操作方法: 

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP生成带有雪花背景的验证码
Oct 09 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
新手菜鸟必读:session与cookie的区别
Aug 22 PHP
ubuntu12.04使用c编写php扩展模块教程分享
Dec 25 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
Jun 21 PHP
采用memcache在web集群中实现session的同步会话
Jul 05 PHP
初识php MVC
Sep 10 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
Laravel框架实现发送短信验证功能代码
Jun 06 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
Mar 27 PHP
PHP反射实际应用示例
Apr 03 #PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
Apr 03 #PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 #PHP
PHP快速排序算法实现的原理及代码详解
Apr 03 #PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 #PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 #PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 #PHP
You might like
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
PHP中PDO的错误处理
2011/09/04 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
php实现短信发送代码
2015/07/05 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
PHP使用反向Ajax技术实现在线客服系统详解
2019/07/01 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
Python BS4库的安装与使用详解
2018/08/08 Python
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
html5菜单折纸效果
2014/04/22 HTML / CSS
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
C语言面试题
2013/05/19 面试题
如何写一份好的英文求职信
2014/03/19 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
秋菊打官司观后感
2015/06/03 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
Java Redisson多策略注解限流
2022/09/23 Java/Android