【问题标题】:Laravel and Ajax Like system is saving multiple record of like to likes tableLaravel 和 Ajax Like 系统正在保存多条点赞记录
【发布时间】: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'
  ]);

谢谢!!

【问题讨论】:

    标签: php ajax laravel


    【解决方案1】:

    尝试删除return redirect()-&gt;back(),然后重试

    【讨论】:

    • 我刚刚做了,但同样的事情
    猜你喜欢
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 2019-04-20
    • 2013-10-08
    • 1970-01-01
    • 2013-03-22
    • 2016-11-01
    • 1970-01-01
    相关资源
    最近更新 更多