Здравствуйте, я разрабатываю нелюбимую систему на основе 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
заранее благодарю
Я нашел ошибку, она выглядит так, как будто она из пакета, я отредактирую ее, если она не подходит, я сниму свой вопрос. @Ron, пожалуйста, проверьте
Лучше, если вы опубликуете его с журналом ошибок.
Вы можете использовать приведенные ниже команды и повторить попытку.
Проверьте версию Laravel с вашим проектом и пакетом overtrue/laravel-follow.
пакет laravel-follow работает в версии 2.1.1 с laravel 5.6, поэтому мне просто нужно, чтобы композитор требовал overtrue/laravel-follow:2.1.1. это оно!
В чем собственно ошибка? Проверьте журнал Laravel и добавьте актуальную ошибку...