使用 Spatie Laravel-permission 進行權限管理,需先透過 Composer 安裝套件並執行遷移。接著,在 User 模型中引入 HasRoles 特徵 (Trait),即可透過建立角色 (Role) 與權限 (Permission) 並指派給使用者來完成設定。
以下為完整的實作步驟:
1. 安裝與初始化
透過終端機執行 Composer 指令進行安裝,並發布設定檔與資料庫遷移檔:
composer require spatie/laravel-permission php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" php artisan migrate
2. 模型設定
在您的 User 模型中,引入 HasRoles:
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use HasRoles;
// ...
}
3. 建立角色與權限
使用套件提供的 Role 和 Permission 模型來建立資料:
use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Permission; // 建立角色 $role = Role::create(['name' => 'Writer']); // 建立權限 $permission = Permission::create(['name' => 'edit articles']);
4. 指派權限與角色
將權限賦予角色,並將角色指派給使用者:
// 將權限賦予角色
$role->givePermissionTo($permission);
// 將角色賦予使用者
$user = User::find(1);
$user->assignRole('Writer');
5. 權限檢查 (驗證)
設定完成後,您可以輕鬆檢查使用者是否具備特定角色或權限:
// 檢查使用者是否擁有特定角色
if ($user->hasRole('Writer')) {
// 執行對應動作
}
// 檢查使用者是否擁有特定權限
if ($user->hasPermissionTo('edit articles')) {
// 執行對應動作
}