Cài đặt & Cấu hình
Cài đặt package
composer require spatie/laravel-permission
File cấu hình: config/permission.php
<?php
return [
// Custom models - cho phép extend Spatie models
'models' => [
'permission' => \App\Models\Permission::class,
'role' => \App\Models\Role::class,
],
// Tên bảng
'table_names' => [
'roles' => 'roles',
'permissions' => 'permissions',
'model_has_permissions' => 'model_has_permissions',
'model_has_roles' => 'model_has_roles',
'role_has_permissions' => 'role_has_permissions',
],
// Team feature (multi-tenant)
'column_names' => [
'team_foreign_key' => 'company_id',
],
'teams' => true,
'team_has_permission' => 'team_has_permission',
// Middleware classes
'middleware' => [
'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class,
],
];
Guard
Sử dụng guard employee (khác với guard web mặc định).
Model EmployeeAccount khai báo:
protected $guard_name = 'employee';
Middleware aliases: bootstrap/app.php
$middleware->alias([
'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class,
]);