0
在我的用户控制器中,我有一个posts函数,它可以访问用户的子资源。这是通过/ users/{id}/posts端点访问的。通过身份验证Laravel
我想从请求URL中的$ id进入一个UserPolicy方法:
public function resource($user, $id)
{
return $user->id === $id;
}
我UserController的方法:
public function posts(Request $request, $id)
{
$this->authorize('resource', $id);
return response()->json(['events' => []], 200);
}
反正有没有做到这一点?我注意到策略方法似乎忽略了任何不是对象的东西。
编辑:
我目前使用此授权的辅助方法,但想将其移动到我的策略,以保持所有规则在一起:
public function authorizeResource($id)
{
if ((int)$id !== (int)$this->auth->user()->id) {
throw new \Exception;
}
}
感谢您的帮助,这工作的魅力。 –