Получение внутренней ошибки 500 сервера после попытки заставить подобную функциональность использовать Ajax - PullRequest
0 голосов
/ 17 декабря 2018

В настоящее время я пытаюсь сделать так, чтобы моя аналогичная функциональность использовала запросы AJAX, чтобы страница не обновлялась всякий раз, когда пользователю нравится изображение, однако каждый раз, когда я нажимаюdiv, который должен вызывать запрос AJAX.

К сожалению, я не знаю, как устранить 500, внутренняя ошибка сервера.

Это соответствующий код из представления, из которого пользователь любитimage:

<div class="submit-btn like" id='{{ $image->id }}'>Like</div>

<script>
    var token = '{{ Session::token() }}';
    var urlLike = '{{ route('likeArtwork') }}'
</script>

Это мой JavaScript:

$('.like').on('click', function(event) {
    var imageId = event.target.id;

    $.ajax({
        method: 'POST',
        url: urlLike,
        data: {
            imageId: imageId,
            _token: token
        }
    }).done(function(response) {

    });
});

Мой почтовый маршрут:

Route::post('/artwork/like', 'LikeController@likeArtwork')->name('likeArtwork');

И, наконец, моя функция likeArtwork ():

public function likeArtwork(){
    $id = $request['imageId'];
    $user = Auth::user();
    $liked = Like::where('user_id', $user->id)->where('image_id', $id)->first();

    if ($liked) {
        $liked->delete();
    } else {
        $like = new Like();
        $like->image_id = $id;
        $like->user_id = $user->id;

        $like->save();
    }

    return redirect()->back();
}

1 Ответ

0 голосов
/ 17 декабря 2018
public function likeArtwork(Request $request){
    $id = $request->input('imageId');
    $user = Auth::user();
    $liked = Like::where('user_id', $user->id)->where('image_id', $id)->first();

    if ($liked) {
        $liked->delete();
    } else {
        $like = new Like();
        $like->image_id = $id;
        $like->user_id = $user->id;

        $like->save();
    }

    echo "success";

    //return redirect()->back(); you don't want to send another request
}

Вы можете проверить, существует ли image_id, а затем использовать методы attach() и detach() .Например, Image::find($id)->likes()->attach(...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...