diff --git a/app/Http/Controllers/LikeController.php b/app/Http/Controllers/LikeController.php index 7ac32bf..ddfd7d4 100644 --- a/app/Http/Controllers/LikeController.php +++ b/app/Http/Controllers/LikeController.php @@ -16,4 +16,10 @@ class LikeController extends Controller return back(); } + + public function destroy(Request $request, Post $post) + { + $request->user()->likes()->where("post_id", $post->id)->delete(); + return back(); + } } diff --git a/app/Models/Post.php b/app/Models/Post.php index e6d54ce..561f8be 100644 --- a/app/Models/Post.php +++ b/app/Models/Post.php @@ -35,4 +35,9 @@ class Post extends Model { return $this->hasMany(Like::class); } + + public function checkLike(User $user) + { + return $this->likes->contains("user_id", $user->id); + } } diff --git a/app/Models/User.php b/app/Models/User.php index 20bf86c..35d6037 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -50,4 +50,9 @@ class User extends Authenticatable { return $this->hasMany(Post::class); } + + public function likes() + { + return $this->hasMany(Like::class); + } } diff --git a/resources/views/posts/show.blade.php b/resources/views/posts/show.blade.php index bba896e..a52a37d 100644 --- a/resources/views/posts/show.blade.php +++ b/resources/views/posts/show.blade.php @@ -11,18 +11,35 @@
0 Likes
diff --git a/routes/web.php b/routes/web.php index 786217b..8069f2d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -33,3 +33,4 @@ Route::post("/images", [ImageController::class, "store"])->name("images.store"); // likes Route::post("/posts/{post}/likes", [LikeController::class, "store"])->name("posts.likes.store"); +Route::delete("/posts/{post}/likes", [LikeController::class, "destroy"])->name("posts.likes.destroy");