首页 > 解决方案 > 使用中间件后,重定向到 url 显示“此页面不工作”。但是当我删除中间件时,会显示页面

问题描述

app/http/Middleware/RoleMiddleware.php 中的中间件代码

  public function handle(Request $request, Closure $next)
{
    if(Auth::user()->role == 3){
        return redirect('sales');
    }
   return redirect('login');
}

路由定义在 route/web.php

Auth::routes();    
route::get('/sales',[App\Http\Controllers\DashboardController::class,'ShowSales']);

DashboardController 包含以下代码以查看页面,如果删除构造函数,则页面将显示在浏览器中,但是当添加具有中间件角色的构造函数时,我收到错误消息,例如“此页面无法正常工作页面重定向了你太多次了。”

 public function __construct()
{
    $this->middleware('role');
}
 public function ShowSales(){
        $data = [
            'category_name' => 'dashboard',
            'page_name' => 'sales',
            'has_scrollspy' => 0,
            'scrollspy_offset' => '',
        ];
        return view('dashboard')->with($data);
    }

并且dashboard.blade.php 是在views/dashboard.blade.php 中创建的,其中包含html 代码。

标签: phplaravellaravel-8

解决方案


中间件代码错误,导致它在销售路线中循环多次。下面的代码有效。

public function handle(Request $request, Closure $next)
{
    if(Auth::user()->role == 3){
         return $next($request);
    }
   return redirect('login');
}

推荐阅读