%PDF- %PDF-
Direktori : /var/www/html/geotechnics/api/vendor/spatie/laravel-permission/docs/advanced-usage/ |
Current File : /var/www/html/geotechnics/api/vendor/spatie/laravel-permission/docs/advanced-usage/seeding.md |
--- title: Database Seeding weight: 2 --- You may discover that it is best to flush this package's cache before seeding, to avoid cache conflict errors. This can be done directly in a seeder class. Here is a sample seeder, which first clears the cache, creates permissions and then assigns permissions to roles (the order of these steps is intentional): ```php use Illuminate\Database\Seeder; use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Permission; class RolesAndPermissionsSeeder extends Seeder { public function run() { // Reset cached roles and permissions app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions(); // create permissions Permission::create(['name' => 'edit articles']); Permission::create(['name' => 'delete articles']); Permission::create(['name' => 'publish articles']); Permission::create(['name' => 'unpublish articles']); // create roles and assign created permissions // this can be done as separate statements $role = Role::create(['name' => 'writer']); $role->givePermissionTo('edit articles'); // or may be done by chaining $role = Role::create(['name' => 'moderator']) ->givePermissionTo(['publish articles', 'unpublish articles']); $role = Role::create(['name' => 'super-admin']); $role->givePermissionTo(Permission::all()); } } ```