Laravel не может передавать несколько промежуточных программ

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

Ролевое ПО промежуточного слоя устройства

<?php

namespace App\Http\Middleware;

use Closure;

class RoleDevice
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::check() && Auth::User()->role=='device'){
            return $next($request);
        }
        return redirect()->route('login')->with('danger',"You don't have an access");
    }
}

Роль суперпользователя устройства

<?php

namespace App\Http\Middleware;

use Closure;
use Auth;
use User;
class RoleSuper
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::check() && Auth::User()->role=='super'){
            return $next($request);
        }
        return redirect()->route('login')->with('danger',"You don't have an access");
    }
}

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

Route::get('/dashboard','DashboardController@index')->middleware(['rolesuper','roledevice'])->name('dashboard');

и когда я пытаюсь войти на свой сайт, он возвращает

You don't have an access

которые не проходят в промежуточное ПО.

Надеюсь, я получу какие-либо комментарии выше! Благодарю.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
619
1

Ответы 1

Промежуточное ПО выполняется в том порядке, в котором они были переданы. Таким образом, если первое промежуточное ПО возвращает ответ перенаправления, то оно - второе промежуточное ПО не будет выполнено.

Вы можете объединить оба промежуточного программного обеспечения в одно и передать доступные роли как параметр промежуточного программного обеспечения или просто создать для этого одно промежуточное программное обеспечение, которое будет проверять, авторизован ли пользователь.

Другие вопросы по теме