用户策略问题当我定义两个用户模型时
Posted
技术标签:
【中文标题】用户策略问题当我定义两个用户模型时【英文标题】:User Policy Problem When I define two User models 【发布时间】:2019-05-18 05:58:04 【问题描述】:我在 Laravel 中使用策略。当我在策略中使用两个用户模型时,它不会访问我!但是,$user
和 $player
都分别返回给我正确的数据。我该如何处理?我的错误是什么?
在控制器中:
$this->authorize('modifyTournamentRegistration', $player);
在政策中:
public function modifyTournamentRegistration(User $user, User $player)
return $user->id === $player->id || $user->inRole('admin');
【问题讨论】:
【参考方案1】:我发现这是因为 Policy 中的 Input 变量类型。我在 AuthServiceProvider 中添加了 User 类:
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
User::class => UserPolicy::class,
];
然后,我在 UserPolicy 中定义了函数:
public function modifyPlayerTournamentRegistration(User $user, User $player)
return $player->id === $user->id || $user->inRole('admin');
并在Controller中使用:
$this->authorize('modifyTournamentRegistration', $player);
它也有效:)
【讨论】:
以上是关于用户策略问题当我定义两个用户模型时的主要内容,如果未能解决你的问题,请参考以下文章