Laravel5框架自定義錯(cuò)誤頁面配置操作示例
本文實(shí)例講述了Laravel5框架自定義錯(cuò)誤頁面配置操作。分享給大家供大家參考,具體如下:
♩ 背景
- 最近試著學(xué)習(xí) laravel 5.5,使用 composer 下載新的框架源代碼
composer create-project --prefer-dist laravel/laravel lar5Pro 5.5.*
- 發(fā)現(xiàn)在輸入錯(cuò)誤的鏈接時(shí),會(huì)有如下的提示信息:
- 想到,一般成型的網(wǎng)站都會(huì)自定義404、501、503等頁面,所以通過網(wǎng)上搜索方法,進(jìn)行測(cè)試,可推薦如下的實(shí)現(xiàn)過程 …
框架: Laravel 5.5
♪ 操作
①. 解釋
- 所有異常錯(cuò)誤都由類 App\Exceptions\Handler 處理,該類包含兩個(gè)方法:
report
和render
,其中的render
方法會(huì)將異常渲染到 HTTP 響應(yīng)中
②. render 方法優(yōu)化
- 參考了網(wǎng)上的相關(guān)介紹,發(fā)現(xiàn)可以將 App\Exceptions\Handler 中的 render 方法修改為下面的樣子:
public function render($request, Exception $exception) { /* 錯(cuò)誤頁面 */ if ($exception) { //TODO Laravel5.5 框架中 Exception 類不存在 getStatusCode()方法,或許只能支持前面的版本! //$code = $exception->getStatusCode(); $code = FlattenException::create($exception)->getStatusCode(); return response()->view('error.' . $code, [], $code); } return parent::render($request, $exception); }
【分析】
經(jīng)過對(duì)框架源碼的查看發(fā)現(xiàn),我們是通過實(shí)例化
FlattenException
類來獲得請(qǐng)求狀態(tài)碼的,根據(jù)提供的測(cè)試類FlattenExceptionTest
,從而得出了上述的代碼,建議可以閱讀下源代碼以做比較
③. 創(chuàng)建 view 頁面
- 在
resources/views/error/
目錄下創(chuàng)建錯(cuò)誤頁面 - 命名格式為 {error.code}.blade.php
④. 訪問測(cè)試
- 舉例來講,在
404.blade.php
中編輯設(shè)計(jì)自己的 404頁面 - 通過訪問一個(gè)不存在的路由,以本人為例,顯示效果如下:
- 默認(rèn)如果數(shù)據(jù)處理有錯(cuò),是 500 異常報(bào)錯(cuò),此時(shí)可以通過 debug 查看并進(jìn)行排錯(cuò)處理…
♫ 附錄
- 根據(jù)上面的操作,可擴(kuò)展創(chuàng)建其他錯(cuò)誤頁面
- 此處附錄一下
404.blade.php
源代碼,僅做參考
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>404頁面</title> <style> #box{ margin: 0 auto; width: 540px; height: 540px; } p{ margin-bottom: 60px; width: 540px; height: 20px; text-align: center; line-height: 20px; } #mes{ font-size: 30px; color: red; } .hint{ color: #999; } a{ color: #259AEA; text-decoration:none } </style> <script> var i = 5; var intervalID = setInterval("fun()", 1000); function fun() { if (i == 0) { window.location.href = "/"; clearInterval(intervalID); } document.getElementById("mes").innerHTML = i; i--; } </script> </head> <body> <div id="box"> <img src="{{ asset('images/error/404.jpg') }}" alt="404"> <p>將在 <span id="mes">5</span> 秒鐘后返回 <a href="{{ url('/') }}" rel="external nofollow" >首頁</a></p> <p class="hint">非常抱歉 - 您可能輸入了錯(cuò)誤的網(wǎng)址,或者該網(wǎng)頁已刪除或移動(dòng)</p> </div> </body> </html>
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。
- Laravel如何友好的修改.env配置文件詳解
- Nginx中運(yùn)行PHP框架Laravel的配置文件分享
- Laravel框架環(huán)境與配置操作實(shí)例分析
- Laravel 前端資源配置教程
- laravel config文件配置全局變量的例子
- Laravel數(shù)據(jù)庫讀寫分離配置的方法
- Laravel 數(shù)據(jù)庫加密及數(shù)據(jù)庫表前綴配置方法
- laravel框架數(shù)據(jù)庫配置及操作數(shù)據(jù)庫示例
- laravel-admin自動(dòng)生成模塊,及相關(guān)基礎(chǔ)配置方法
- laravel 配置路由 api和web定義的路由的區(qū)別詳解
- Laravel5.6框架使用CKEditor5相關(guān)配置詳解
- Laravel配置全局公共函數(shù)的方法步驟
- laravel配置Redis多個(gè)庫的實(shí)現(xiàn)方法
- nginx實(shí)現(xiàn)一個(gè)域名配置多個(gè)laravel項(xiàng)目的方法示例
- laravel 框架配置404等異常頁面
- Laravel 5.5官方推薦的Nginx配置學(xué)習(xí)教程
- Laravel Memcached緩存驅(qū)動(dòng)的配置與應(yīng)用方法分析
- Laravel 5+ .env環(huán)境配置文件詳解

python進(jìn)程與線程小結(jié)實(shí)例分析

gd庫圖片下載類實(shí)現(xiàn)下載網(wǎng)頁所有圖片的php代碼

ThinkPHP查詢返回簡(jiǎn)單字段數(shù)組的方法

Laravel實(shí)現(xiàn)登錄跳轉(zhuǎn)功能