update inbox list
This commit is contained in:
40
vendor/spatie/laravel-permission/docs/advanced-usage/seeding.md
vendored
Normal file
40
vendor/spatie/laravel-permission/docs/advanced-usage/seeding.md
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
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());
|
||||
}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user