From 0e7b23cb1e5d696bc2d83b94c0d3f721d6d05494 Mon Sep 17 00:00:00 2001 From: Ghostie Date: Thu, 22 Aug 2024 19:30:50 -0500 Subject: [PATCH] liking posts --- app/Http/Controllers/LikeController.php | 11 ++++++++++- app/Models/Like.php | 5 +++++ app/Models/Post.php | 8 +++++++- resources/views/posts/show.blade.php | 17 ++++++++++++++++- routes/web.php | 4 ++++ 5 files changed, 42 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/LikeController.php b/app/Http/Controllers/LikeController.php index 6847a9a..7ac32bf 100644 --- a/app/Http/Controllers/LikeController.php +++ b/app/Http/Controllers/LikeController.php @@ -2,9 +2,18 @@ namespace App\Http\Controllers; +use App\Models\Post; use Illuminate\Http\Request; class LikeController extends Controller { - // + public function store(Request $request, Post $post) + { + // store the like + $post->likes()->create([ + "user_id" => $request->user()->id + ]); + + return back(); + } } diff --git a/app/Models/Like.php b/app/Models/Like.php index d746314..43d7efd 100644 --- a/app/Models/Like.php +++ b/app/Models/Like.php @@ -8,4 +8,9 @@ use Illuminate\Database\Eloquent\Model; class Like extends Model { use HasFactory; + + protected $fillable = [ + "user_id", + "post_id" + ]; } diff --git a/app/Models/Post.php b/app/Models/Post.php index f8ed4e7..e6d54ce 100644 --- a/app/Models/Post.php +++ b/app/Models/Post.php @@ -2,8 +2,9 @@ namespace App\Models; -use Illuminate\Database\Eloquent\Factories\HasFactory; +use App\Models\Like; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Factories\HasFactory; class Post extends Model { @@ -29,4 +30,9 @@ class Post extends Model { return $this->hasMany(Comment::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 0190555..bba896e 100644 --- a/resources/views/posts/show.blade.php +++ b/resources/views/posts/show.blade.php @@ -9,7 +9,22 @@
{{ $post->title }} -
+
+ @auth +
+ @csrf +
+ +
+
+ @endauth +

0 Likes

diff --git a/routes/web.php b/routes/web.php index 1a52c71..786217b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,7 @@ use App\Http\Controllers\CommentController; use App\Http\Controllers\ImageController; +use App\Http\Controllers\LikeController; use App\Http\Controllers\LoginController; use App\Http\Controllers\LogoutController; use App\Http\Controllers\PostController; @@ -29,3 +30,6 @@ Route::delete("/posts/{post}", [PostController::class, "destroy"])->name("posts. Route::post("/{user:username}/posts/{post}", [CommentController::class, "store"])->name("comment.store"); Route::post("/images", [ImageController::class, "store"])->name("images.store"); + +// likes +Route::post("/posts/{post}/likes", [LikeController::class, "store"])->name("posts.likes.store");