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它有错误日志就更好了。
您可以使用以下命令再试一次。
- php artisan cache:clear
- php artisan config:clear
- php artisan config:cache
检查 Laravel 版本与你的项目和 overtrue/laravel-follow 包
您好,我正在开发基于 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它有错误日志就更好了。
您可以使用以下命令再试一次。
- php artisan cache:clear
- php artisan config:clear
- php artisan config:cache
检查 Laravel 版本与你的项目和 overtrue/laravel-follow 包