недавно я создал два промежуточного программного обеспечения, одно для пользователя, называемого устройством, и другое для суперпользователя, который имеет высокий уровень администратора. Это мое промежуточное ПО
Ролевое ПО промежуточного слоя устройства
<?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
которые не проходят в промежуточное ПО.
Надеюсь, я получу какие-либо комментарии выше! Благодарю.






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