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 相关文章推荐
第十三节--对象串行化
Nov 16 PHP
PHP基础知识介绍
Sep 17 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
php利用curl抓取新浪微博内容示例
Apr 27 PHP
ThinkPHP的模版中调用session数据的方法
Jul 01 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
php超快高效率统计大文件行数
Jul 05 PHP
php实现通过cookie换肤的方法
Jul 13 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
yii框架使用分页的方法分析
Jul 25 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
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
php.ini 配置文件的深入解析
2013/06/17 PHP
简单的php文件上传(实例)
2013/10/27 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
Laravel 模型关联基础教程详解
2019/09/17 PHP
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
Python docx库用法示例分析
2019/02/16 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
《小石潭记》教学反思
2014/02/13 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
我的梦想演讲稿
2014/04/30 职场文书
公务员个人考察材料
2014/12/23 职场文书
婚礼答谢礼品
2015/01/20 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL