gpt4 book ai didi

php - Controller 构造函数中的 Laravel 策略

转载 作者:行者123 更新时间:2023-12-04 14:00:40 25 4
gpt4 key购买 nike

我正在使用策略类来授权一些用户(作者或管理员)更新和删除 Post Model 中的记录。这是一个简单的 CRUD。问题是:如何立即针对特定方法运行策略检查?例如,我可以在 PostController 构造函数中使用中间件来检查用户是否已登录,但是我该如何执行类似于需要参数的策略的操作?

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用于门(资源)的路由参数。

Laravel 5.5 Docs - Authorization - Authorizing Actions - via Middleware

关于php - Controller 构造函数中的 Laravel 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47973084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com