Yii2: Делаем свою страницу ошибки error 404

Yii2: Делаем свою страницу ошибки error 404 Изменяем вид страницы ошибки Error404 в Yii 2 на свой вкус. Чем плотнее работаю с Yii 2, тем большую радость это доставляет. Очень многие вещи стали ещё удобнее и проще, по сравнению с первой линейкой фреймворка Yii.

В наборе файлов Yii2 уже имеется views/site/error.php. Просто редактируйте его содержимое как вам нравится. (Если используете свою тему, то можно в ней оформить файл ошибки - это будет файл web/themes/ваша_тема/views/site/error.php)

В нём можно использовать 3 переменные: $name, $message, $exception.

Флаг ошибки 404 - это значение $exception->statusCode. Таким образом можно написать свою проверку этого значения и для разных ошибок показывать пользователю разный ответ.

Например, для сайта нашей школы брейка - inspire2.ru - пока добавил проверку: если ошибка error 404, то показывать основное меню в теле страницы. Вот вид views/site/error.php

<?php

use yii\helpers\Html;

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

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

<?php if($exception->statusCode == '404') { $this->title = "Где-то ошибка..."; ?>
<p class="text-danger text-center lead">Такой страницы нет. Воспользуйтесь меню ниже.</p>
<div class="well well-lg bgblack70">
<?= $this->render('/layouts/_navbar2') ?>
     </div>
<? } else { ?>
<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>

Остальное не трогал.

Вот как выглядит эта страница

Yii2 своё оформление для страницы Error 404

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (0)     Подпишитесь на RSS комментариев к этой статье.