So this is the problem, I have application with post and comment. But I want to limit the comment per user, So if there is 1 post only 1 comment per user. Is it possible ?
Here is my store
function in CommentController
:
JavaScript
x
public function store(Request $request, $post)
{
$this->validate($request, array(
'title' => 'required|max:200',
'desc' => 'required|max:800'
));
$comments = new Comment();
$comments->id_user = Auth::id();
$comments->id_post = $post;
$comments->title = $request->A;
$comments->desc = $request->B;
$comments->save();
return redirect()->route('controller.index');
}
What query can I add in this store
function to limit the user to only comment once in 1 post. Thanks guys hope you can help me.
Advertisement
Answer
It’s very simple you need to check if a comment for a user and post already exists like this:
JavaScript
if (! Comment::where('id_user', $userId)->where('id_post', $postId)->exists()) {
//save the comment
} else {
// do not save the comment
}
In your case $userId
may be Auth::user()->id
, and the $postId is $post->id
.