我正在使用spatie许可包。我想向角色分配许可。下面是我在控制器中的方法:
public function testing_role_permission()
{
$role = Role::findById(2);
$permission = Permission::findById(1);
$role->givePermissionTo($permission);
}
它向我显示异常 PermissionDoesNotExist
没有ID为1
的[permission]。
在此之前,相同的方法已经起作用,并且为角色分配了权限。但是我在PermissionTableSeeder中创建了一些新的权限。这样做之后,它不起作用了。我进行了大量搜索以尝试清除缓存,但此异常没有任何反应。< / p>
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']);
}
}
如何解决此错误?
谢谢!
答案 0 :(得分:0)
在您的权限表中,检查您的guard_name。如果它为空或不匹配,则可能是您收到了该错误。