Laravel 8 授權(quán)動(dòng)作

2021-07-17 17:19 更新

使用 Gate 來授權(quán)動(dòng)作的時(shí)候, 你應(yīng)該使用 allows 或者 denies 方法。 注意,不需要將當(dāng)前已認(rèn)證用戶傳遞給這些方法。 Laravel 會(huì)自動(dòng)處理好已經(jīng)認(rèn)證通過的用戶,然后傳遞給 Gate 閉包函數(shù):

if (Gate::allows('edit-settings')) {
    // 指定當(dāng)前用戶可以編輯設(shè)置
}

if (Gate::allows('update-post', $post)) {
    // 指定當(dāng)前用戶可以進(jìn)行更新...
}

if (Gate::denies('update-post', $post)) {
    // 指定當(dāng)前用戶不能更新...
} 

如果你想判斷一個(gè)特定的用戶是否已經(jīng)被授權(quán)訪問某個(gè)動(dòng)作, 你可以使用在 Gate 在 facade 的 forUser 方法:

if (Gate::forUser($user)->allows('update-post', $post)) {
    // 用戶可以更新...
}

if (Gate::forUser($user)->denies('update-post', $post)) {
    // 用戶不能更新...
} 

您可以使用 anynone 方法一次授權(quán)多個(gè)操作:

if (Gate::any(['update-post', 'delete-post'], $post)) {
    // 用戶可以更新或刪除
}

if (Gate::none(['update-post', 'delete-post'], $post)) {
    // 用戶不能更新或刪除
}
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)