Laravel 5.6 ajax 请求内部服务器错误

Laravel 5.6 ajax request internal server error

您好,我正在开发基于 https://www.itsolutionstuff.com/post/php-laravel-5-like-dislike-system-tutorialexample.html

的不喜欢的系统

但是 ajax 函数抛出内部服务器错误

这是我的控制器

public function ajaxRequest(Request $request)
    {
        $post = Post::find($request->id);
        $response = auth()->user()->toggleLiked($post);

        return response()->json(['success' => $response]);
    }

这是我的 ajax 请求:

<script type="text/javascript">
    $(document).ready(function() {


        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });


        $('i.glyphicon-thumbs-up, i.glyphicon-thumbs-down').click(function(){
            var id = $(this).parents(".panel").data('id');
            var c = $('#'+this.id+'-bs3').html();
            var cObjId = this.id;
            var cObj = $(this);


            $.ajax({
               type:'POST',
               url:'/ajaxRequest',
               data:{id:id},
               success:function(data){
                  if(jQuery.isEmptyObject(data.success.attached)){
                    $('#'+cObjId+'-bs3').html(parseInt(c)-1);
                    $(cObj).removeClass("like-post");
                  }else{
                    $('#'+cObjId+'-bs3').html(parseInt(c)+1);
                    $(cObj).addClass("like-post");
                  }
               }
            });


        });


        $(document).delegate('*[data-toggle="lightbox"]', 'click', function(event) {
            event.preventDefault();
            $(this).ekkoLightbox();
        });
    });
</script>

这是点赞的表单

    <span class="pull-right">
       <span class="like-btn">
       <i id="like{{$post->id}}" class="glyphicon glyphicon-thumbs-up {{ auth()->user()->hasLiked($post) ? 'like-post' : '' }}"></i>
     
       <div id="like{{$post->id}}-bs3">{{ $post->likers()->get()->count() }}</div>
     <span>
   </span>

这是错误 “local.ERROR:方法 Illuminate\Database\Query\Builder::toggleLiked 不存在。”

我使用 overtrue/laravel-follow 喜欢和不喜欢系统的软件包

我所做的是更改路由以防它丢失某些东西,但仍然抛出相同的错误,我该怎么办?

答案:

原来它发生在控制器中。它应该是toggleLike。同时我输入 toggleLiked

先谢谢你

如果你post它有错误日志就更好了。

您可以使用以下命令再试一次。

  1. php artisan cache:clear
  2. php artisan config:clear
  3. php artisan config:cache

检查 Laravel 版本与你的项目和 overtrue/laravel-follow 包