Лайк Систем с AJAX и Laravel - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь сделать так, чтобы люди могли ставить лайки на нажатие кнопки, которые будут загружать строки в таблицу лайков, а затем, если они снова нажмут кнопку, это удалит запись, в отличие от поста. Проблема, с которой я столкнулся, состоит в том, что я перефразировал учебник, который включал логическое значение для «нравится» и «не нравится», у меня нет логического значения и я пытался перенастроить код, чтобы приспособиться к этому. У меня проблема в том, что после того, как я разобрался с неавторизованными ошибками, кнопка теперь кажется мертвой и ничего не делает. Я предполагаю, что это означает, что это проблема с кодом Laravel для этого. Кто-нибудь может понять, почему кнопка не отвечает, и указать мне, как мне нравится (публиковать) в базе данных, проверить лайк и удалить, если кнопка нажата и строка существует?

Вот что у меня есть:

Table: 
likes: id, post_id, user_id, timestamps()

HTML:

<a class="btn btn-not-liked like">Liked?</a>

AJAX JS:

var postId = 0;
var token = '{{ Session::token() }}';
var urlLiKes = '{{ route('likes') }}';
$('.like').on('click', function(event){
    event.preventDefault();
    postId = event.target.parentNode.parentNode.dataset['postid'];
    var isVisit = event.target.previousElementSibling == null;
    $.ajax({
        method: 'POST',
        url: urlLikes,
        data: {isLikes: isLikes, postId: postId, _token: token}
     })
     .done(function() {

     });

     });

PHP:

$post_id = $request['postId'];
        $is_visit = $request['isLike'] === 'true';
        $post = Post::find($post_id);
        if (!$post) {
            return null;
        }
        $liked = Auth::user()->likes()->where('post_id', $post_id)->first();
        if($liked == $is_like){
            $liked->delete();
            return null;
        }
        else{
            $liked = new Like();
        }
        $liked->user_id = Auth::user();
        $liked->post_id = $post->id;
        $liked->save();
        return null;
}

Пожалуйста, помогите найти проблему в этом коде или укажите мне, что такое система без логического значения и просто "нравится" (пост) / непохожа (удалена) с Laravel и AJAX.

1 Ответ

0 голосов
/ 10 мая 2018

Я думаю, проблема в том, что вы выполняете логическое / объектное сострадание.

Я предлагаю переписать ваше условие if в:

if( !is_null($liked)){...}    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...