【发布时间】:2021-05-20 01:22:20
【问题描述】:
我通过在策略中定义一个函数来使用中间件,如下所示:
在 UserPolicy.php 中:
public function accessUser(User $user)
{
return $user->inRole('admin');
}
public function manageUser(User $user, User $secondUser)
{
return $user->inRole('admin') || $secondUser->id === $user->id;
}
在 UserController.php 中:
public function __construct()
{
$this->middleware('can:accessUser', ['except' => ['show']]);
}
public function index(Request $request)
{
...
}
public function show(Request $request, User $user)
{
$this->authorize('manageUser', $user);
...
}
我正在使用admin 帐户。它适用于show 函数,但不适用于index 函数。为什么??我该怎么办?还有其他地方我应该定义accessUser 函数吗?
【问题讨论】:
标签: php laravel middleware policy