这是我的app.blade
$('.like').click(function(event) {
var id = $(this).data('id');
$.ajax({
url: "{{route('post.like','')}}/"+id,
})
});
这是我的adscontroller.php
public function likePost(Request $request){
$likePost=new Like;
$likePost->user_id=Auth::user()->id;
$likePost->ad_id= $request->id;
$likePost->save();
}
当我单击按钮时,数据插入在likes表中,但我想在视图中返回喜欢的数量
在您的likePost
函数中,保存Like
后,请执行以下操作之一:
如果要返回用户具有的喜欢的数量:
$likes = Like::where('user_id', Auth::user()->id)->count();
如果要返回喜欢的数量,则广告具有:
$likes = Like::where('ad_id', $request->id)->count();
如果要返回所有喜欢的数量:
$likes = Like::count();
然后,由于它是AJAX请求,因此您需要在likePost
函数中返回JSON响应:https://laravel.com/docs/5.6/responses#json-responses
return response()->json([
'likes' => $likes
]);
在您的JavaScript中,以这样的方式获取响应:
$.ajax({
url: "{{route('post.like','')}}/"+id,
}).done(function(response) {
var likes = response.likes; <-- num of likes
});
- 编辑 -
要在视图中显示,只需在要显示的html元素中添加类或ID,例如:
<div id="numberOfLikes"></div>
然后,您可以使用从Ajax获得的响应来设置其内部HTML内容:
$.ajax({
url: "{{route('post.like','')}}/"+id,
}).done(function(response) {
var likes = response.likes;
$('#numberOfLikes').html(response.likes);
});