Laravel 8 授權資源控制器

2021-07-17 17:21 更新

如果你使用的是 資源控制器,那么你就可以在控制器構造方法里使用 authorizeResource 方法。此方法將適當?shù)?can 中間件定義附加到資源控制器相應的方法中。

authorizeResource 方法接受模型的類名作為其第一個參數(shù),而將包含模型 ID 的 route /request 參數(shù)的名稱作為其第二個參數(shù)。 您應該確保您的 這樣控制器 是使用 --model 標志創(chuàng)建的,以具有所需的方法簽名和類型提示:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\Post;
use Illuminate\Http\Request;

class PostController extends Controller
{
    public function __construct()
    {
        $this->authorizeResource(Post::class, 'post');
    }
}

以下控制器方法將映射到其對應的策略方法:

控制器方法 策略方法
index viewAny
show view
create create
store create
edit update
update update
destroy delete

技巧:你可以使用帶有 --model 選項的 make:policy 命令去快速生成基于給定模型的策略類:php artisan make:policy PostPolicy --model=Post


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號