Never hardcode ids
$superadminrole = Role::findByName('administrator');
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Please help, when I run php artisan migrate:refresh --seed I get: Spatie\Permission\Exceptions\RoleDoesNotExist
There is no role with id 1.
at vendor/spatie/laravel-permission/src/Exceptions/RoleDoesNotExist.php:16
12▕ }
13▕
14▕ public static function withId(int $roleId)
15▕ {
➜ 16▕ return new static("There is no role with id {$roleId}.");
17▕ }
18▕ }
19▕
+1 vendor frames
2 database/seeders/PermissionSeeder.php:44 Spatie\Permission\Models\Role::findById()
+8 vendor frames
11 database/seeders/DatabaseSeeder.php:22 Illuminate\Database\Seeder::call("Database\Seeders\PermissionSeeder")
Here is my databaseseeder:
public function run()
{
$this->call(RoleSeeder::class);
$this->call(CompanyTableSeeder::class);
$this->call(ContactTableSeeder::class);
$this->call(NoteTableSeeder::class);
$this->call(ArtworkTableSeeder::class);
$this->call(PermissionSeeder::class);
$this->call(AdminSeeder::class);
}
so I am seeding the Roles first so surely they have IDs in :
public function run()
{
Role::create(['guard_name' => 'superadmin', 'name' => 'administrator']);
Role::create(['guard_name' => 'admin', 'name' => 'manager']);
Role::create(['guard_name' => 'editor', 'name' => 'editor']);
Role::create(['guard_name' => 'user', 'name' => 'web']);
}
then my Permissions seeder is:
public function run()
{
$permission1 = Permission::create(['name' => 'Create Company']);
$permission2 = Permission::create(['name' => 'Create Contact']);
$permission3 = Permission::create(['name' => 'Create Artwork']);
$permission4 = Permission::create(['name' => 'Create User']);
$permission5 = Permission::create(['name' => 'Create Item']);
$permission6 = Permission::create(['name' => 'Create Todo']);
$permission7 = Permission::create(['name' => 'Edit Company']);
$permission8 = Permission::create(['name' => 'Edit Contact']);
$permission9 = Permission::create(['name' => 'Edit Artwork']);
$permission10 = Permission::create(['name' => 'Edit User']);
$permission11 = Permission::create(['name' => 'Edit Item']);
$permission12 = Permission::create(['name' => 'Edit Todo']);
$permission13 = Permission::create(['name' => 'Delete Company']);
$permission14 = Permission::create(['name' => 'Delete Contact']);
$permission15 = Permission::create(['name' => 'Delete Artwork']);
$permission16 = Permission::create(['name' => 'Delete User']);
$permission17 = Permission::create(['name' => 'Delete Item']);
$permission18 = Permission::create(['name' => 'Delete Todo']);
$permission19 = Permission::create(['name' => 'View Company']);
$permission20 = Permission::create(['name' => 'View Contact']);
$permission21 = Permission::create(['name' => 'View Artwork']);
$permission22 = Permission::create(['name' => 'View User']);
$permission23 = Permission::create(['name' => 'View Item']);
$permission24 = Permission::create(['name' => 'View Todo']);
$superadminrole = Role::findById(1);
$adminrole = Role::findById(2);
$editorrole = Role::findById(3);
$webrole = Role::findById(4);
$superadminrole->givePermissionTo(
[
$permission1,
$permission2,
$permission3,
$permission4,
$permission5,
$permission6,
$permission7,
$permission8,
$permission9,
$permission10,
$permission11,
$permission12,
$permission13,
$permission14,
$permission15,
$permission16,
$permission17,
$permission18,
$permission19,
$permission20,
$permission21,
$permission22,
$permission23,
$permission24,
]
);
$adminrole->givePermissionTo(
[
$permission1,
$permission2,
$permission3,
$permission4,
$permission5,
$permission6,
$permission7,
$permission8,
$permission9,
$permission10,
$permission11,
$permission12,
$permission18,
$permission19,
$permission20,
$permission21,
$permission22,
$permission23,
$permission24,
]
);
$editorrole->givePermissionTo(
[
$permission7,
$permission8,
$permission9,
$permission10,
$permission11,
$permission12,
$permission19,
$permission20,
$permission21,
$permission22,
$permission23,
$permission24,
]
);
$webrole->givePermissionTo(
[
$permission19,
$permission20,
$permission21,
$permission22,
$permission23,
$permission24,
]
);
}
Please or to participate in this conversation.