【发布时间】:2021-07-27 11:57:04
【问题描述】:
尝试使用 ajax 在我的 laravel 应用程序中发送创建一个类似系统,它可以工作,但是当将数据发送到 likes 表时,它会发送相同的重复项,其中大约 5 个,我不知道为什么,当我这样做时与没有 ajax 的函数一样,它工作得很好,没有任何问题,这是我的代码
刀片
<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'
]);
谢谢!!
【问题讨论】: