При использовании Laravel 11 обработка исключений перенесена в файл bootstrap/app.php. Я пытаюсь перехватить исключение AuthorizationException и вернуть пользователя на панель управления с сообщением 403:
// bootstrap/app.php
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Http\Request;
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
return Application::configure(basePath: dirname(__DIR__))
...
->withExceptions(function (Exceptions $exceptions) {
$exceptions->render(function (AuthorizationException $e, Request $request) {
return redirect()
->route('dashboard')
->withErrors($e->getMessage());
});
...
})
...
->create();
Но это не работает. Этот вошедший в систему пользователь не может видеть конечную точку /users, но мой обработчик исключений не обрабатывает ее. Они должны видеть свою панель управления. (Мой .env показывает APP_DEBUG=true.)
[img]https://i.sstatic .net/9QdVvzKN.png[/img]
(на этом снимке экрана используется barryvdh/laravel-debugbar)
При использовании Laravel 11 обработка исключений перенесена в файл bootstrap/app.php. Я пытаюсь перехватить исключение AuthorizationException и вернуть пользователя на панель управления с сообщением 403: [code]// bootstrap/app.php
use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Http\Request; use Illuminate\Foundation\Application; use Illuminate\Foundation\Configuration\Exceptions;
return Application::configure(basePath: dirname(__DIR__)) ... ->withExceptions(function (Exceptions $exceptions) { $exceptions->render(function (AuthorizationException $e, Request $request) { return redirect() ->route('dashboard') ->withErrors($e->getMessage()); }); ... }) ... ->create(); [/code] Но это не работает. Этот вошедший в систему пользователь не может видеть конечную точку /users, но мой обработчик исключений не обрабатывает ее. Они должны видеть свою панель управления. (Мой .env показывает APP_DEBUG=true.) [img]https://i.sstatic .net/9QdVvzKN.png[/img]
(на этом снимке экрана используется barryvdh/laravel-debugbar)