Я новичок в Laravel API. Существует функция обновления, которая позволяет пользователям обновлять только свои собственные сообщения. Это сработало. Когда пользователи пытаются обновить сообщение другого пользователя, это также работает, но показывает ошибку, подобную этой картинке. На самом деле я хочу, чтобы это отображалось в ответ json.
Я хочу показать сообщение, как это
{
"status": "error",
"message": "This action is unauthorized",
}
Это мой код для PostController.
public function update(Request $request, Post $post)
{
$this->authorize('update', $post);
//this will check the authorization of user but how to make if else statement, if the post belong to the user it will show this json below but if the post belong to other, it will show error message(response json)
$post->content = $request->get('content', $post->content);
$post->save();
return fractal()
->item($post)
->transformWith(new PostTransformer)
->toArray();
}
Этот код для PostPolicy
public function update(User $user, Post $post)
{
return $user->ownsPost($post);
}
Это код для модели пользователя
public function ownsPost(Post $post)
{
return Auth::user()->id === $post->user->id;
}
Этот код для AuthServiceProvider
protected $policies = [
'App\Post' => 'App\Policies\PostPolicy',
];
Надеюсь, кто-нибудь может мне помочь.