Laravel 8 編寫 Gates

2021-07-17 17:19 更新

Gates 是用來決定用戶是否授權(quán)執(zhí)行給予動作的一個閉包函數(shù),并且典型的做法就是在 App\Providers\AuthServiceProvider 中使用 Gate 來定義。Gates 總是接收一個用戶實例作為第一個參數(shù),并且可以接收可選參數(shù),比如相關(guān)的 Eloquent 模型:

/**
 * 注冊任意用戶認證、用戶授權(quán)服務(wù)
 *
 * @return void
 */
public function boot()
{
    $this->registerPolicies();

    Gate::define('edit-settings', function ($user) {
        return $user->isAdmin;
    });

    Gate::define('update-post', function ($user, $post) {
        return $user->id === $post->user_id;
    });
}

也可以使用類回調(diào)數(shù)組來定義門,例如控制器:

use App\Policies\PostPolicy;

/**
 * 注冊任意用戶認證、用戶授權(quán)服務(wù)
 *
 * @return void
 */
public function boot()
{
    $this->registerPolicies();

    Gate::define('update-post', [PostPolicy::class, 'update']);
} 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號