尝试在我的laravel应用程序中使用ajax发送创建一个相似的系统,它可以工作,但是当将数据发送到likes表时,它会发送相同like的副本,大约5个,我不知道为什么,当我在没有ajax的情况下执行相同的like函数时,它可以正常工作,没有问题,下面是我的代码
刀片
<div class="container">
@if ( auth()->user()->hasLiked($activity))
<a href="{{ route('reply.unlike', ['id' => $activity->id ]) }}" class="btn btn-danger btn-xs">Unlike</a>
@else
<a class="btn btn-success btn-xs likeMain">
<input type="hidden" class="id" value="{{ $activity->id }}">
<input type="hidden" class="user-id" value="{{ $activity->user_id }}">
Like
</a>
@endif
<script>
jQuery(document).ready(function ($) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('.likeMain').click(function () {
var ActID = $('.id').val();
var userss = $('.user-id').val();
$.ajax({
type: 'POST',
url: '/replylike',
data: {
ActID: ActID,
userss: userss
},
success: function (data) {
console.log(data)
}
});
});
});
</script>
</div>
控制器
public function likeReply(Request $request)
{
Like::create([
'likeable_id' => $request->ActID,
'likeable_type' => 'App\Activity',
'user_id' => Auth::id()
]);
Session::flash('success', 'You Liked the activity');
return redirect()->back();
}
路线
Route::post('/replylike', [
'uses' => 'LikeController@LikeReply',
'as' => 'reply.like'
]);
非常感谢。
1条答案
按热度按时间z31licg01#
尝试删除
return redirect()->back()
然后再试一次