public function update (Request $request, $id, $commentid) {
$this->validate($request, [
'body' =>'required|max:255'
]);
$post = Post::findorFail($id);
$comment = Comment::find($commentid);
$body = $request->body;
$comment->post_id = $post->id;
$comment->body = $body;
$comment ->user_id = Auth::user()->id;
$comment ->save();
return response()->json(['data' => $comment], 200, [], JSON_NUMERIC_CHECK);
}
如何限制其他user->id
更新auth->id
条评论
并使用发布的选择方法来捕获特定帖子的user_id
,但会收到errorexception
并使用了中间件,但错误仍然相同
答案 0 :(得分:2)
如果我正确理解了您的问题,则可以尝试通过以下方式进行操作:
public function update (Request $request, $id, $commentid) {
$comment = Comment::find($commentid);
if ( Auth::user()->id !== $comment->user_id ) {
return response()->json(['error' => 'Forbidden'], 403);
}
// other code
}
我希望这个决定对您来说足够了,但是我不得不说,我更喜欢FormRequest
https://laravel.com/docs/5.8/validation#form-request-validation
在rules()
函数中,您可以设置验证规则。
在authorize()
中,检查用户是否可以更改评论。
答案 1 :(得分:0)
您正在使用Auth :: user();授权给用户。 laravel的默认功能是对用户进行身份验证