我已经克隆了市场仓库并进行了适当的配置。当我使用时,php artisan db:seed我收到此错误
david@david-Lenovo-G50-30:~/projects/marketplacekit$ php artisan db:seed
Seeding: UsersTableSeeder
Seeding: RolesAndPermissionsSeeder
Spatie\Permission\Exceptions\PermissionAlreadyExists : A `edit listing` permission already exists for guard `web`.
at /home/david/projects/marketplacekit/vendor/spatie/laravel-permission/src/Exceptions/PermissionAlreadyExists.php:11
7| class PermissionAlreadyExists extends InvalidArgumentException
8| {
9| public static function create(string $permissionName, string $guardName)
10| {
11| return new static("A `{$permissionName}` permission already exists for guard`{$guardName}`.");
12| }
13| }
14|
Exception trace:
1 Spatie\Permission\Exceptions\PermissionAlreadyExists::create("edit listing", "web")
/home/david/projects/marketplacekit/vendor/spatie/laravel-permission/src/Models/Permission.php:42
2 Spatie\Permission\Models\Permission::create(["edit listing", "web"])
/home/david/projects/marketplacekit/database/seeds/RolesAndPermissionsSeeder.php:20
Please use the argument -v to see more details.
Run Code Online (Sandbox Code Playgroud)
角色和权限Seeder.php
public function run(){
//Reset cached roles and permissions
app()['cache']->forget('spatie.permission.cache');
//create permissions
Permission::create(['name' => 'edit listing']);
Permission::create(['name' => 'publish listing']);
Permission::create(['name' => 'unpublish listing']);
Permission::create(['name' => 'disable listing']);
Permission::create(['name' => 'ban user']);
// create roles and assign created permissions
$role = Role::create(['name' => 'member']);
$role = Role::create(['name' => 'editor']);
$role->givePermissionTo(['edit listing', 'publish listing', 'unpublish listing']);
$role = Role::create(['name' => 'moderator']);
$role->givePermissionTo(['edit listing', 'disable listing', 'publish listing', 'unpublish listing', 'ban user']);
$role = Role::create(['name' => 'admin']);
$role->givePermissionTo(Permission::all());
$user = \App\Models\User::first();
$user->assignRole('admin');
}
Run Code Online (Sandbox Code Playgroud)
我已经以普通用户和 root 用户身份从缓存中清除了用户权限和角色,但它没有帮助。我做错了什么,我该怎么做?
您可以使用 artisan 命令清除 spatie 权限缓存。
php artisan cache:forget spatie.permission.cache
php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2457 次 |
| 最近记录: |