Я создаю университетскую социальную сеть, которая будет включать некоторые сценарии и легкий поиск работы.До сих пор я следовал учебникам Максимилиана из Academind, и мне нужно изменить функцию лайков, чтобы работать с моим новым дизайном.Я хочу использовать «нравится» и «не нравится» с ajax в режиме реального времени, и, отправляя его, я хочу изменить цвет своего значка.
Также провел весь день, пытаясь реализовать счетчик лайков и антипатий, но никогда не получал его вв реальном времени
PostController.php
......
public function postLikePost(Request $request)
{
$post_id = $request['postId'];
$is_like = $request['isLike'] === 'true';
$update = false;
$post = Post::find($post_id);
if (!$post) {
return null;
}
$user = Auth::user();
$like = $user->likes()->where('post_id', $post_id)->first();
if ($like) {
$already_like = $like->like;
$update = true;
if ($already_like == $is_like) {
$like->delete();
return null;
}
} else {
$like = new Like();
}
$like->like = $is_like;
$like->user_id = $user->id;
$like->post_id = $post->id;
if ($update) {
$like->update();
} else {
$like->save();
}
return null;
}
app.js
var postId = 0;
var postBodyElement = null;
.....
$('.like').on('click', function(event) {
event.preventDefault();
postId = event.target.parentNode.parentNode.dataset['postid'];
var isLike = event.target.previousElementSibling == null;
$.ajax({
method: 'POST',
url: urlLike,
data: {isLike: isLike, postId: postId, _token: token}
})
.done(function() {
event.target.innerText = isLike ? event.target.innerText == 'Like' ? 'You like this post' : 'Like' : event.target.innerText == 'Dislike' ? 'You don\'t like this post' : 'Dislike';
if (isLike) {
event.target.nextElementSibling.innerText = 'Dislike';
} else {
event.target.previousElementSibling.innerText = 'Like';
}
});
});
Dashboard.blade.php
......
<div class="like_comment_area row">
<div class="col s4 btn_floating">
<a class="btn-floating waves-effect"><i class="ion-android-share-alt"></i></a>
<h6>128k</h6>
</div>
<div class="col s4 updown_btn" data-postid="{{ $post->id }}">
<a href="#" class="like"><i class="ion-android-arrow-dropup-circle"></i></a>
<a href="#" class="like"><i class="ion-android-arrow-dropdown-circle"></i></a>
<a href="#" class="count_n">483</a>
</div>
<div class="col s4 updown_btn comment_c">
<a href="#"><i class="ion-ios-chatboxes-outline"></i></a>
<a href="#" class="count_n">14</a>
</div>
</div>
Я надеюсь, что кто-то может мне помочьили дайте ответ на "легкую" проблему, которая у меня есть.