2015-11-24 2 views
0

В моем проекте laravel у меня есть Middleware, чтобы проверить роль пользователя.laravel 5 Middleware дает неожиданный результат

Теперь в routes.php у меня есть 2 группы, одна из них - группа области администрирования, я применил промежуточное ПО только к этой группе.

Он работает до сих пор, как ожидалось, если у зарегистрированного пользователя есть права администратора, он может получить доступ к страницам администратора.

Но я даже не могу получить доступ к другим маршрутам, все они дают мне несанкционированную ошибку. Даже если я не применял промежуточное ПО к этим маршрутам.

Означает, что промежуточное программное обеспечение CheckRole работает по всему миру по каждому запросу.

Другие маршруты, которые не являются админ-зоной, к ним обращаются через угловые.

Возможно, я не знаю, как работает Middlewares, и я чего-то не хватает. Пожалуйста, поделитесь своими знаниями.

Спасибо.

+0

Вы добавили роль промежуточного программного обеспечения в массив '$ middleware' или массив' $ routeMiddleware'? '$ middleware' является глобальным Возможно, обновите свой пост несколькими примерами вашего кода. В частности, ваши 'routes.php',' kernel.php' и ваш 'CheckRole.php' – Pistachio

+0

Я думаю, что я получил его, я добавлял свое промежуточное ПО как к среднему средству, так и к $ routeMIddleware. Я думаю, что $ middleware array предназначен для глобальных вызовов промежуточного программного обеспечения. Пожалуйста, скажите мне, что это правильно теоретически. –

ответ

0

Я добавлял свое промежуточное ПО как к среднему средству $, так и к $ routeMiddleware. Я думаю, что $ middleware array предназначен для глобальных вызовов промежуточного программного обеспечения.

Я удалил его из $ middleware, и теперь он отлично работает.

Это было просто.

Спасибо всем, имейте хороший день.