gpt4 book ai didi

php - Laravel 无法为用户模型创建策略

转载 作者:行者123 更新时间:2023-12-04 01:42:07 24 4
gpt4 key购买 nike

无法为用户模型创建策略。

我创建了这样的策略
php artisan make:policy UserPolicy --model=User
获得带有 CRUD 操作的 UserPolicy.php。

然后在 AuthServiceProvider.php 我添加

protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
User::class => UserPolicy::class,
];

但什么也没有发生。据我了解,默认情况下为用户模型生成的策略在每个操作上都返回 false,我什至将其明确添加到 UserPolicy 类中:
public function create(User $user)
{
return false;
}

还可以创建用户。

稍后我将需要检查用户是否尝试编辑自己的帖子。除了编辑自己的配置文件(模型)之外,所有非管理员用户都应该被禁止。

我一定遗漏了一些明显的东西。

更新:

如果我把
$this->authorize('create', $user);

在UsersController的create方法中,会调用create方法Policy,所以看出来有问题
...
use App\Policies\UserPolicy;
use App\User;
...

protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
User::class => UserPolicy::class,
];

在 AuthServiceProvider 中。

最佳答案

您可以为用户策略编写此代码

在 UserPolicy.php 中:

public function update(User $user, User $model)
{
return $user->id === $model->id;
}

例如,通过此代码,您可以仅更新您自己的个人资料。

关于php - Laravel 无法为用户模型创建策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56907078/

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