В настоящее время я переношу проект с CodeIgniter на Laravel5.Laravel Authorize() confusion
Я видел в Laracasts, что вы можете использовать метод Request::authorize()
для авторизации доступа до вызова контроллера и возвращает true или false.
Это было бы (я думаю) идеальным решением, поскольку я могу содержать проверки разрешений внутри запроса, а не загрязнять контроллер с помощью проверок разрешений и перенаправления/ответов.
Единственная проблема в том, когда я вернусь из false
authorize()
, он просто загружает пустая белая страница с forbidden
написана, и я не могу найти никакой документации по laravel.com о том, как шаблоне его (или нет документации , или я его не замечаю)
Я знаю, что могу редактировать страницу 404 в errors/404.blade.php
, но я не могу решить, как настроить страницу 403, в которой я попытался добавить пользовательскую страницу 403.blade.php
, которая не отображается. (https://mattstauffer.co/blog/laravel-5.0-custom-error-pages)
Является ли это разрешение на проверку в запросе хорошей идеей? Или я чего-то не хватает?
Update Я побежал трассировку от authorize()
, и, похоже, он бросает UnauthorizedException
, который проходит RuntimeException
. Я попытался поймать обоих в файле routes.php
, который тоже не работает.
Я также пытался создать промежуточное программное обеспечение и вызывать промежуточное ПО из метода, который тоже не работает, поскольку промежуточное программное обеспечение даже не вызвано вообще.
Update 2 Итак, я узнал, что я могу назвать только $this->middleware()
из конструктора, а не отдельных методов, что прогресс, я думаю.
Извините, мне потребовалось некоторое время, чтобы вернуться, я работал над другими вещами. Я только что протестировал ваш метод, и он работает блестяще, и намного проще, чем то, что я делал раньше! Большое спасибо за ответ. –