Исключение перенаправления Laravel не работает - PullRequest
0 голосов
/ 28 мая 2018

У меня проблема, я не могу перенаправить это исключение:

This action is unauthorized.

В обработчике у меня есть:

use Illuminate\Auth\AuthenticationException;
...

public function render($request, Exception $exception)
{
    if ($exception instanceof AuthenticationException) {
        return redirect()->to('/');
    }

    return parent::render($request, $exception);
}

Но условие всегда возвращает false .. Почему?

Я получаю сообщение об отладке:

protected function prepareException(Exception $e)
{
    if ($e instanceof ModelNotFoundException) {
        $e = new NotFoundHttpException($e->getMessage(), $e);
    **} elseif ($e instanceof AuthorizationException) {
        $e = new AccessDeniedHttpException($e->getMessage(), $e);**
    } elseif ($e instanceof TokenMismatchException) {
        $e = new HttpException(419, $e->getMessage(), $e);
    }

    return $e;
}

Я пробовал и AccessDeniedHttpException.Не работает ...

1 Ответ

0 голосов
/ 28 мая 2018

Исключение:

Это действие не авторизовано.

Вызывается Illuminate\Auth\Access\AuthorizationException;

Следовательно, ваша функция должна выглядеть следующим образом:

use Illuminate\Auth\Access\AuthorizationException;
...

public function render($request, Exception $exception)
{
    if ($exception instanceof AuthorizationException) {
        return redirect()->to('/');
    }

    return parent::render($request, $exception);
}

Тот, который вы сейчас используете (Illuminate\Auth\AuthenticationException), предназначен для аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...