Laravel - 如果不是超级管理员,如何显示访问被拒绝

Laravel - How to display Access Denied if not Super Admin

我有这个控制器:

    class AdminLoginController extends Controller
    {
        public function index() {
            return view('auth.admin.login');
        }
    }

route\web

    Route::get('/admin/login', 'Auth\AdminLoginController@index')->name('admin.login');

我正在使用 spatie

如果登录用户不是 'Super Admin'

,我该怎么做
> Auth::user()->hasRole('Super Admin')

应用程序应显示拒绝访问。但如果是超级管理员,它应该重定向到仪表板。

我该如何完成?

谢谢

  1. 在 config/auth 中添加新角色。php 例如管理员角色。

  2. 在该角色的登录控制器中重新定义重定向 url。 (可以在拒绝访问页面设置)

  3. 请在 Dashboard controller 中添加构造函数如下

    public 函数 __construct() { $this->中间件('auth:super_admin'); }