Я пытаюсь ограничить доступ к маршрутам только для некоторых типов пользователей на моем сайте, которые я пишу с помощью Laravel 5.7, сейчас я пытаюсь сделать это с помощью промежуточного программного обеспечения.
ДляУ каждого уровня пользователя у меня есть промежуточное программное обеспечение с этим кодом (с изменением типа):
public function handle($request, Closure $next)
{
if(Auth::user()->type==3)
return $next($request);
else
return redirect()->route('dashboard');
}
А в файле kernel.php они написаны так:
protected $routeMiddleware = [
...
'teacher' => \App\Http\Middleware\RedirectIfTeacher::class,
...
]
В моем приложении у каждого пользователя есть уровень, который начинается с 1 до 5, но у каждого уровня есть отдельные представления и некоторые общие представления, но мне не удается перенаправить представления более чем для одного типа.пользователя, потому что я не могу заставить их работать, когда я использую более одного промежуточного ПО на маршруте (или маршрутах), которые совместно используются более чем двумя типами пользователей.
Когда я пытаюсь использовать его, justs игнорирует второй илибольше промежуточного программного обеспечения и перенаправлений на маршрут панель управления , который является маршрутом для перенаправления, если тип пользователя не может войти в желаемое представление.
Прямо сейчас я пробовал с этим кодом:
Route::group(['middleware' => ['administrator','teacher','student']], function(){
И шih этот код:
Route::group(['middleware' => ['administrator' OR 'teacher' OR 'student']], function(){
Также я попробовал с этим стилем:
Route::group(['middleware' => ['administrator|teacher|student']], function(){
Без удачи, есть что-то, что я делаю неправильно?или есть лучший способ сделать то, что я пытаюсь достичь, заранее спасибо!