/
alexey92
/
test
Обзор
Документация
Войти
/
alexey92
/
test
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app/Http/Controllers/LikeController.php
37 строк
1 KB
alexeylavrentev
new test
07 ноя 2024, 14:33
07 ноя 2024, 14:33
8de66b9
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Models\Like; use App\Models\User; use Illuminate\Http\Request; class LikeController extends Controller { public function likePost(Request $request) { $likeableId = $request->input('likeableId'); $userId = $request->input('userId'); // Проверяем, существует ли объект, который можно лайкнуть $likeable = $this->getLikeable($likeableId); // Проверяем, существует ли пользователь $user = User::findOrFail($userId); // Проверяем, уже ли пользователь лайкнул объект if ($likeable->likes()->where('user_id', $userId)->exists()) { // Если лайк уже есть, удаляем его $likeable->likes()->where('user_id', $userId)->delete(); return response()->json(['message' => '-1']); } else { // Если лайка нет, добавляем его $likeable->likes()->save(new Like([ 'user_id' => $userId, 'likeable_id' => $likeableId, 'likeable_type' => get_class($likeable), ])); return response()->json(['message' => '+1']); } } }