php Laravel - Spatie Roles对于guard 'web'没有名为'ABR'的权限

pu3pd22g  于 2023-03-11  发布在  PHP
关注(0)|答案(1)|浏览(134)

当我尝试在登录后检查事件中的权限并向用户添加一些权限(如果他没有分配)时,发生以下错误:
Spatie \权限\异常\权限不存在防护web不存在名为ABR的权限。
更有趣的是,我已经试过关注这篇文章了:
spatie/laravel-permission对于guard API,没有名为edit_project的权限
但是直接为Spatie该高速缓存:php artisan cache:forget spatie.permission.cache,然后针对整个应用程序:php artisan cache:clear没有帮助。
我想做的是处理用户登录后的事件,这将权限分配给他的模型.简短的演示:

/**
     * Handle the event.
     *
     * @param  \Illuminate\Auth\Events\Login  $event
     * @return void
     */
    public function handle(Login $event)
    {
        $event->user->givePermissionTo('ABR'); 
    }

我的权限通过*.txt文件加载,然后添加到Permission::create(['name'=>'ABR']);等数据库中。
知道如何解决这个问题吗?guard_name会自动分配给web

s4n0splo

s4n0splo1#

如果您想使用api保护,那么就像这样简单:

Permission::create(['name'=>'ABR', 'guard_name' => 'api']);

相关问题