|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <?php
-
-
- namespace yii\web;
-
- use Yii;
- use yii\base\Action;
- use yii\base\Exception;
- use yii\base\UserException;
-
-
- class ErrorAction extends Action
- {
-
-
- public $view;
-
-
- public $defaultName;
-
-
- public $defaultMessage;
-
-
-
-
- public function run()
- {
- if (($exception = Yii::$app->getErrorHandler()->exception) === null) {
-
- $exception = new HttpException(404, Yii::t('yii', 'Page not found.'));
- }
-
- if ($exception instanceof HttpException) {
- $code = $exception->statusCode;
- } else {
- $code = $exception->getCode();
- }
- if ($exception instanceof Exception) {
- $name = $exception->getName();
- } else {
- $name = $this->defaultName ?: Yii::t('yii', 'Error');
- }
- if ($code) {
- $name .= " (#$code)";
- }
-
- if ($exception instanceof UserException) {
- $message = $exception->getMessage();
- } else {
- $message = $this->defaultMessage ?: Yii::t('yii', 'An internal server error occurred.');
- }
-
- if (Yii::$app->getRequest()->getIsAjax()) {
- return "$name: $message";
- } else {
- return $this->controller->render($this->view ?: $this->id, [
- 'name' => $name,
- 'message' => $message,
- 'exception' => $exception,
- ]);
- }
- }
- }
|