本文實(shí)例講述了ThinkPHP3.2.3框架實(shí)現(xiàn)的空模塊、空控制器、空操作,跳轉(zhuǎn)到錯(cuò)誤404頁(yè)面。分享給大家供大家參考,具體如下:
【演示準(zhǔn)備】
首先下載了一個(gè)ThinkPHP3.2.3,目錄結(jié)構(gòu)如下:(只有Home模塊、Index控制器、index操作方法)

然后找了一個(gè)簡(jiǎn)易的錯(cuò)誤404頁(yè)面404.html放到了根目錄:

【空模塊】
訪問(wèn)一個(gè)不存在的模塊Admin,錯(cuò)誤提示:

修改根目錄下 ThinkPHP/Library/Think/Dispatcher.class.php 178行代碼:
// E(L('_MODULE_NOT_EXIST_').':'.MODULE_NAME);
header("Location: /404.html");
exit();
再次訪問(wèn)空模塊:

【空控制器】
訪問(wèn)Home模塊不存在的控制器User,錯(cuò)誤提示:

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

通常的處理方法是:在當(dāng)前模塊下新建一個(gè)Empty控制器,在里面做404跳轉(zhuǎn)(A方法實(shí)例化Empty控制器)。
EmptyController.class.php:
?php
namespace Home\Controller;
use Think\Controller;
class EmptyController extends Controller {
public function index() {
header("Location:/404.html");
exit();
}
}
再次訪問(wèn)空控制器:

【空操作】
訪問(wèn)Home模塊下Index控制器不存在的test操作方法,錯(cuò)誤提示:

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

通常的處理方法是:在當(dāng)前模塊下新建一個(gè)Public控制器(繼承Controller),在里面定義_empty方法跳轉(zhuǎn)404頁(yè)面, 然后其他控制器再繼承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:

再次訪問(wèn)空操作方法:

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- 讓whoops幫我們告別ThinkPHP6的異常頁(yè)面
- Thinkphp 在api開(kāi)發(fā)中異常返回依然是html的解決方式
- 解決thinkphp5未定義變量會(huì)拋出異常,頁(yè)面錯(cuò)誤,請(qǐng)稍后再試的問(wèn)題
- 關(guān)于ThinkPHP中的異常處理詳解
- thinkPHP線(xiàn)上自動(dòng)加載異常與修復(fù)方法實(shí)例分析
- ThinkPHP中自定義錯(cuò)誤頁(yè)面和提示頁(yè)面實(shí)例
- TP5(thinkPHP5框架)實(shí)現(xiàn)顯示錯(cuò)誤信息及行號(hào)功能的方法
- ThinkPHP下表單令牌錯(cuò)誤與解決方法分析
- ThinkPHP表單令牌錯(cuò)誤的相關(guān)解決方法分析
- thinkPHP自動(dòng)驗(yàn)證、自動(dòng)添加及表單錯(cuò)誤問(wèn)題分析
- Thinkphp5框架異常處理操作實(shí)例分析