我正在使用spatie权限包。我想向角色分配权限。下面是我在控制器中的方法:
public function testing_role_permission()
{
$role = Role::findById(2);
$permission = Permission::findById(1);
$role->givePermissionTo($permission);
}
向我显示异常PermissionDoesNotExist没有ID为1
的[权限]。
在使用相同的方法之前,已经为角色分配了权限。但是我在PermissionTableSeeder中创建了一些新的权限。执行此操作后,它不起作用。我进行了大量尝试以清除缓存,但此异常没有任何反应。
PermissionTableSeeder.php
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
class PermissionTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
app()[\Spatie\Permission\PermissionRegistrar::class]-
>forgetCachedPermissions();
//role permissions
Permission::create(['name' => 'create_role']);
Permission::create(['name' => 'read_role']);
Permission::create(['name' => 'update_role']);
Permission::create(['name' => 'delete_role']);
Permission::create(['name' => 'disable_role']);
Permission::create(['name' => 'isolation_role']);
}
}
如何解决此错误?
提前感谢!
在您的权限表中,检查您的guard_name。如果为空或不匹配,则可能是您收到了该错误。