我得到这个动作是未经授权的403当我输入URL本地主机/网站/后/ 1 /编辑。我要保护编辑从未经授权的用户帖子。
在PostController中
public function edit($id)
{
$post=Post::findOrFail($id);
$this->authorize('check_access',$post);
return 'You are authorized';
}
在AuthServiceProvider.php
protected $policies = [
Post::class => 'PostPolicy::class',
];
在PostPolicy.php
public function check_access($post)
{
return Auth::user()->id==$post->user_id;
}
在web.php Route::resource('post','PostController');
请告诉我哪里错了。我在laravel新的和完全沮丧。谢谢
你不应该完全阻碍了我的朋友。你应该阅读的文档,你正在尝试写的代码更好的理解。所以才效仿here,你应该是所有好去。因此,而不是访问来自Auth
后卫的用户,你可以通过它传递给方法,第一个参数。
public function check_access(User $user, Post $post)
{
return $user->id == $post->user_id;
}