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 相关文章推荐
PHP5中MVC结构学习
Oct 09 PHP
由php if 想到的些问题
Mar 22 PHP
php addslashes 函数详细分析说明
Jun 23 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
解析php中如何直接执行SHELL
Jun 28 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
Mar 20 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
Oct 20 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 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
PHP模拟SQL Server的两个日期处理函数
2006/10/09 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
php适配器模式简单应用示例
2019/10/23 PHP
【消息提示组件】,兼容IE6/7&amp;&amp;FF2
2007/09/04 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
python解释器spython使用及原理解析
2019/08/24 Python
Python如何读取文件中图片格式
2020/01/13 Python
详解Python3中的 input() 函数
2020/03/18 Python
python如何处理程序无法打开
2020/06/16 Python
Django视图类型总结
2021/02/17 Python
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
国际书籍零售商:Wordery
2017/11/01 全球购物
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
商场活动策划方案
2014/01/24 职场文书
大学生自我评价范文
2015/03/03 职场文书
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers