Yii2 制作一个404页面

我是通过模块的方式添加的。

1.添加模块:

  1. 'site' => [
  2. 'class' => '\fecshop\app\appfront\modules\Site\Module',
  3. ],
'site' => [
    'class' => '\fecshop\app\appfront\modules\Site\Module',
    
  ],

2.新建controller方法:

  1. <?php
  2. namespace fecshop\app\appfront\modules\Site\controllers;
  3. use Yii;
  4. use fec\helpers\CModule;
  5. use fecshop\app\appfront\modules\AppfrontController;
  6. class HelperController extends AppfrontController
  7. {
  8. public function actions()
  9. {
  10. return [
  11. 'error' => [
  12. 'class' => 'yii\web\ErrorAction',
  13. ],
  14. 'captcha' => [
  15. 'class' => 'yii\captcha\CaptchaAction',
  16. 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
  17. ],
  18. ];
  19. }
  20. }
<?php
namespace fecshop\app\appfront\modules\Site\controllers;
use Yii;
use fec\helpers\CModule;
use fecshop\app\appfront\modules\AppfrontController;
class HelperController extends AppfrontController
{
    public function actions()
    {
        return [
            'error' => [
                'class' => 'yii\web\ErrorAction',
            ],
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction',
                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            ],
        ];
    }



}

3.新建view方法

  1. <?php
  2. /* @var $this yii\web\View */
  3. /* @var $name string */
  4. /* @var $message string */
  5. /* @var $exception Exception */
  6. use yii\helpers\Html;
  7. $this->title = $name;
  8. ?>
  9. <div class="site-error">
  10. <h1><?= Html::encode($this->title) ?></h1>
  11. <div class="alert alert-danger">
  12. <?= nl2br(Html::encode($message)) ?>
  13. </div>
  14. <p>
  15. The above error occurred while the Web server was processing your request.
  16. </p>
  17. <p>
  18. Please contact us if you think this is a server error. Thank you.
  19. </p>
  20. </div>
<?php

/* @var $this yii\web\View */
/* @var $name string */
/* @var $message string */
/* @var $exception Exception */

use yii\helpers\Html;

$this->title = $name;
?>
<div class="site-error">

    <h1><?= Html::encode($this->title) ?></h1>

    <div class="alert alert-danger">
        <?= nl2br(Html::encode($message)) ?>
    </div>

    <p>
        The above error occurred while the Web server was processing your request.
    </p>
    <p>
        Please contact us if you think this is a server error. Thank you.
    </p>

</div>

4.设置:(config)

  1. 'errorHandler' => [
  2. 'errorAction' => 'site/helper/error',
  3. ],
'errorHandler' => [
      'errorAction' => 'site/helper/error',
    ],

这样就添加成功了。