我正在尝试在Post Model中制定政策,我遵循文档,但始终返回false在api.php中
Route::put('post/{id}','PostController@update')->middleware('auth:api');
在后控制器中
public function update(Request $request, Post $post,$id){
$this->authorize('update',$post);
$request->validate(['content'=>'required']);
$post = $post->find($id);
$post->content = $request->content;
$post->save();
return response()->json($post, 200);
}
在PostPolicy中
public function update(User $user, Post $post)
{
return $user->id === $post->user_id;
}
在AuthServiceProvider中]
protected $policies = [ 'App\Post' => 'App\Policies\PostPolicy', ];
请忽略模型,因为模型运行正常,如果我评论$ this->授权控制器正在运行,但是没有身份验证,则用户可以更新模型中的任何内容
我使用api使用邮递员进行测试
authorization = Bearer 'api_token'
我试图在Post Model中制定政策,我遵循文档,但在api.php Route中仍然始终返回false Route :: put('post / {id}','PostController @ update')-> middleware('auth :api');在帖子中...
出现此问题的原因是,策略中的update方法需要模型的已加载实例,但是,在当前设置下,您正在传递模型的已卸载/空实例。