Heim >PHP-Framework >Laravel >Lassen Sie uns über das Erweiterungspaket für die Berechtigungsverwaltung in Laravel sprechen
Dieser Artikel bringt Ihnen relevantes Wissen über laravel, das hauptsächlich die Probleme im Zusammenhang mit dem Erweiterungspaket der Berechtigungsverwaltung vorstellt. Ich hoffe, es wird für alle hilfreich sein.
【Verwandte Empfehlung: Laravel-Video-Tutorial】
Zum Beispiel hat das Forum, das wir normalerweise verwenden
Webmaster ------- die höchste Autorität und ist das Wichtigste. Es ist die Berechtigung, Benutzer zu verwalten.
Administrator ----- Die Verwaltung einiger Artikel wird keine großen Auswirkungen auf die Website haben
Normale Benutzer ---- können nur einfache Ergänzungen, Löschungen, Änderungen, Kommentare usw. an ihren eigenen Artikeln vornehmen Besucher ---- können nur grundlegendes Durchsuchen durchführenTabellen erstellen
Rollen --- ---- Rolleninformationen: Webmaster usw.
Permissions (Berechtigungen) und
Roles(Rollen), eine Berechtigung kann mehreren Rollen gehören und eine Rolle kann mehrere Berechtigungen haben. Die Beziehung ist: viele-zu-viele (role_has_permissions) Benutzer und
Berechtigungeneins-zu-viele (model_has_permissions) Benutzer und
Rolleeins-zu-viele (model_has_roles) Mit anderen Worten, die Beziehung ist klar, wann der Benutzer welche Rolle oder was hat Berechtigungen, der entsprechende Vorgang wird ausgeführt
1. Installieren Sie das Erweiterungspaketcomposer require "spatie/laravel-permission:~2.7"Datenbankmigrationsdatei generieren:
php artisan seller:publish --provider="SpatiePermissionPermissionServiceProvider" --tag="migrations"
Sie können sehen Zugehörige Tabelleninformationen im Migrationsverzeichnis, Datenbankmigration ausführen.
php artisan migrate
Hinzufügen Rollen für Benutzer
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
Berechtigungen für Benutzer entfernen
..... use Spatie\Permission\Traits\HasRoles; // use class User extends Authenticatable { use HasRoles; // 加载角色相关信息 .....
Berechtigungen zu Rollen hinzufügen
use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Permission; ..... $role = Role::create(['name' => 'writer']); // 创建角色 $permission = Permission::create(['name' => 'edit articles']);// 创建权限
Berechtigungen zu einer Rolle hinzufügen
$user->givePermissionTo('edit articles');
Eine Berechtigung widerrufen und eine neue hinzufügen
$user->assignRole('writer'); $user->assignRole(['writer', 'admin']);
$user->revokePermissionTo('edit articles');Synchronisieren mehrfach Rollen zu Berechtigungen
$role->givePermissionTo('edit articles');
$role->givePermissionTo('edit articles');Den aktuellen Benutzer abrufen Die Berechtigungsliste
$user->syncPermissions(['edit articles', 'delete articles']);Ruft alle Berechtigungen des Benutzers ab, entweder direkte Berechtigungen (odel_has_permissions) oder von der Rolle oder von beiden
$user->getRoleNames();Ruft ab Die Rollensammlung des Benutzers
$role->syncPermissions($permissions); // @param array $permissions $permission->syncRoles($roles);Gibt Benutzer mit der angegebenen Rolle zurück. | Gibt nur Benutzer mit der Rolle „Autor“ zurück.
$role->revokePermissionTo($permission); $permission->removeRole($role);Gibt Benutzer mit angegebenen Berechtigungen zurück Überprüfen Sie, ob eine bestimmte Berechtigung vorhanden ist Überprüfen Sie, ob eine Rolle über bestimmte Berechtigungen verfügt. Löschen Sie bestimmte Berechtigungen der Cache
$permissions = $user->permissions;
[Verwandte Empfehlungen:
Laravel-Video-Tutorial]
Das obige ist der detaillierte Inhalt vonLassen Sie uns über das Erweiterungspaket für die Berechtigungsverwaltung in Laravel sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!