Rumah rangka kerja php YII yii2如何自定义500错误

yii2如何自定义500错误

Feb 20, 2020 pm 04:15 PM
500 yii2

yii2如何自定义500错误

1、创建ErrorHandler,继承这个yii\base\ErrorHandler抽象类,然后定义这个父类中的抽象方法

<?php
namespace common\component\exception;
/**
 * User: szliugx@gmail.com
 * Date: 2016/9/20
 * Time: 14:24
 */
use yii;
use yii\base\ErrorHandler as BaseErrorHandler;
use common\component\earlywarning\EarlyWarning;

class ErrorHandler extends BaseErrorHandler
{

    public $errorView = &#39;@app/views/errorHandler/error.php&#39;;
    public function renderException($exception)
    {
        if(Yii::$app->request->getIsAjax()){
            exit( json_encode( array(&#39;code&#39; =>$exception->getCode(),&#39;msg&#39;  =>$exception->getMessage()) ));
        }else{
            //将500的代码,发送监控预警
            if(!empty($exception->getCode()) && $exception->getCode() ==8){
                $params = [];
                $params[&#39;projectName&#39;] = "oct-youban";
                $params[&#39;level&#39;] = 5;
                $params[&#39;title&#39;] = "500:".$exception->getMessage();
                $params[&#39;value&#39;] = $exception->getCode();
                $params[&#39;message&#39;] = $exception->getFile().":".$exception->getLine();
                $params[&#39;bizcode&#39;] = 8;
                $params[&#39;subcode&#39;] = 8001;
                EarlyWarning::WarninApi($params);
            }
            echo  Yii::$app->getView()->renderFile($this->errorView,[&#39;exception&#39; => $exception,],$this);
        }
    }
}
Salin selepas log masuk

推荐教程:yii框架

2、创建视图文件 : @app/views/errorHandler/error.php

<?php
/**
 * User: szliugx@gmail.com
 * Date: 2016/9/20
 * Time: 15:23
 */
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="format-detection" content="telephone=no">
    <meta http-equiv="Expires" content="-1">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Pragma" content="no-cache">
    <title><?php if(!empty($exception->getCode())&&($exception->getCode() == 8)){echo "出错啦";}else{ echo $exception->getMessage();}?></title>
    <link href="/css/error.css" rel="stylesheet" 0="frontend\assets\AppAsset">
</head>
<body>
<div>
    <div class="status-icon icon-desk"></div>
    <div>
        <p><?php if(!empty($exception->getCode())&&($exception->getCode() == 8)){echo "出错啦";}else{ echo $exception->getMessage();}?></p>
    </div>
</div>
</body>
</html>
Salin selepas log masuk

3、修改应用的配置文件:@app/config/main.php

&#39;errorHandler&#39; => [
            //&#39;errorAction&#39; => &#39;site/error&#39;,
            &#39;class&#39; => &#39;common\component\exception\ErrorHandler&#39;,
        ],
Salin selepas log masuk

效果如下:

500错误页:

f08fcd2a753306a28c23099a55ec82a.png

404错误页:

5e0b460a58c2f66f2413b09908017c4.png

更多编程相关内容,请关注php中文网编程入门栏目!

Atas ialah kandungan terperinci yii2如何自定义500错误. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengalih keluar jquery dalam yii2 Bagaimana untuk mengalih keluar jquery dalam yii2 Feb 17, 2023 am 09:55 AM

Bagaimana untuk mengalih keluar jquery daripada yii2: 1. Edit fail AppAsset.php dan ulas nilai "yii\web\YiiAsset" dalam pembolehubah $depends 2. Edit fail main.php dan tambah konfigurasi sebagai "'yii" di bawah medan "komponen" \web\JqueryAsset' => ['js' => [],'sourcePath' => null,]," untuk mengalih keluar skrip jquery.

Beberapa latihan CTF terpilih akan membantu anda mempelajari rangka kerja yii2! Beberapa latihan CTF terpilih akan membantu anda mempelajari rangka kerja yii2! Feb 23, 2022 am 10:33 AM

Artikel ini akan memperkenalkan anda kepada rangka kerja yii2, berkongsi beberapa latihan CTF dan menggunakannya untuk mempelajari rangka kerja yii2 saya harap ia akan membantu semua orang.

Apakah yang dimaksudkan dengan ralat pelayan dalaman 500? Apakah yang dimaksudkan dengan ralat pelayan dalaman 500? Feb 21, 2023 pm 03:39 PM

Ralat pelayan dalaman 500 bermaksud ralat pelayan dalaman HTTP 500, yang bermaksud bahawa pelayan menghadapi situasi yang tidak dijangka yang menyebabkan ia tidak dapat memenuhi permintaan, tetapi ia tidak dapat menjelaskan ralat khusus atau punca ralat apabila ralat berlaku; laman web yang dilawati akan memaparkan ralat .

Cara memasang sambungan Redis menggunakan rangka kerja YII2 Cara memasang sambungan Redis menggunakan rangka kerja YII2 May 26, 2023 pm 06:41 PM

1. Anda perlu memuat turun versi windows cawangan induk yii2-redis dengan komposer 2. Nyahzip dan salin ke vendor/yiisoft 3. Tambah 'yiisoft/yii2-redis' => array('name' => 'yiisoft ke extensions.php di bawah yiisoft /yii2-redis','version' =>'2.0.

Brits menggesa untuk menyemak di rumah untuk syiling 50p yang jarang bernilai £2,500 Brits menggesa untuk menyemak di rumah untuk syiling 50p yang jarang bernilai £2,500 Oct 28, 2024 pm 04:20 PM

Menurut seorang pakar, karya 2011 itu dicetak untuk meraikan Sukan Olimpik London pada 2012.

Harga Ethereum (ETH) Pulih Melebihi $2,320, Tetapi Bergelut untuk Mencapai Kadar Harga Ethereum (ETH) Pulih Melebihi $2,320, Tetapi Bergelut untuk Mencapai Kadar Sep 10, 2024 pm 03:20 PM

Harga Ethereum memulakan gelombang pemulihan di atas paras $2,250. ETH dapat mengosongkan zon rintangan $2,280 untuk bergerak ke zon positif, tetapi momentum adalah lemah berbanding Bitcoin.

Analisis Harga Bitcoin (BTC): BTC Memulakan Pergerakan Menaik Yang Ketara, Mensasarkan Markah $60,000 Analisis Harga Bitcoin (BTC): BTC Memulakan Pergerakan Menaik Yang Ketara, Mensasarkan Markah $60,000 Sep 12, 2024 pm 06:35 PM

Bitcoin telah memulakan pergerakan menaik yang ketara, melepasi paras rintangan $57,500 dan kini menunjukkan tanda-tanda menjanjikan yang berpotensi mencapai paras $60,000.

Brits menggesa untuk menyemak syiling 50p mereka kerana versi jarang boleh bernilai £2.5k yang besar Brits menggesa untuk menyemak syiling 50p mereka kerana versi jarang boleh bernilai £2.5k yang besar Oct 28, 2024 pm 04:24 PM

Syiling 2011, yang ditempa sempena sambutan Sukan Olimpik London pada 2012, dikenali sebagai reka bentuk "akuatik" dan menampilkan imej seorang perenang

See all articles