Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Использование действий для отображения ошибок в yii 2

Использование действий для отображения ошибок

Лучшим способом изменения отображения ошибок является использование действий путём конфигурирования свойства [[yii\web\ErrorHandler::errorAction|errorAction]] компонента errorHandler:



// ...
'components' => [
    // ...
    'errorHandler' => [
        'errorAction' => 'site/error',
    ],
]

Свойство [[yii\web\ErrorHandler::errorAction|errorAction]] принимает маршрут действия. Конфигурация выше означает, что для отображения ошибки без стека вызовов будет использовано действие site/error.

Само действие можно реализовать следующим образом:

namespace app\controllers;

use Yii;
use yii\web\Controller;

class SiteController extends Controller
{
    public function actions()
    {
        return [
            'error' => [
                'class' => 'yii\web\ErrorAction',
            ],
        ];
    }
}

Приведённый выше код задаёт действие error используя класс [[yii\web\ErrorAction]], который рендерит ошибку используя отображение error.

Вместо использования [[yii\web\ErrorAction]] вы можете создать действие error как обычный метод:

public function actionError()
{
    $exception = Yii::$app->errorHandler->exception;
    if ($exception !== null) {
        return $this->render('error', ['exception' => $exception]);
    }
}

Вы должны создать файл представления views/site/error.php. В этом файле, если используется [[yii\web\ErrorAction]], вам доступны следующие переменные:

  • name: имя ошибки;
  • message: текст ошибки;
  • exception: объект исключения, из которого можно получить дополнительную информацию, такую как статус HTTP, код ошибки, стек вызовов и т.д.

Info: Если вы используете шаблоны приложения basic или advanced, действие error и файл представления уже созданы за вас.

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'