laravel和ajax-like系统正在保存多条like-to-likes表的记录

a0zr77ik  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(297)

尝试在我的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'
  ]);

非常感谢。

z31licg0

z31licg01#

尝试删除 return redirect()->back() 然后再试一次

相关问题