[英]Laravel Policies in Controller Constructor
我正在使用策略類來授權一些用戶(作者或管理員)來更新和刪除Post Model中的記錄。 這是一個簡單的CRUD。 問題是:如何立即針對特定方法運行策略檢查? 例如,我可以在PostController構造函數中使用中間件來檢查用戶是否已登錄,但是如何執行類似於需要參數的策略的操作?
后控制器
public function __construct()
{
$this->middleware('auth', ['except' => ['index', 'show']]);
}
后政策
class PostPolicy
{
use HandlesAuthorization;
public function before($user)
{
if ($user->hasRole('admin')) {
return true;
}
}
public function manage($user, $post)
{
return $user->id == $post->user_id;
}
}
AuthServiceProvider
public function boot()
{
$this->registerPolicies();
Gate::define('manage-post', 'App\Policies\PostPolicy@manage');
}
我嘗試了這個:
$this->middleware('can:manage-post', ['except' => ['index', 'show']]);
但這沒有用。
提前致謝。
我只注冊該策略並使用該策略,而不是單獨寫出一個“功能”。
can:manage,post
manage
操作, post
用於門(資源)的“路徑參數”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.