liking posts

This commit is contained in:
Ghostie 2024-08-22 19:30:50 -05:00
parent f1dd904b72
commit 0e7b23cb1e
5 changed files with 42 additions and 3 deletions

View File

@ -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();
}
}

View File

@ -8,4 +8,9 @@ use Illuminate\Database\Eloquent\Model;
class Like extends Model
{
use HasFactory;
protected $fillable = [
"user_id",
"post_id"
];
}

View File

@ -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);
}
}

View File

@ -9,7 +9,22 @@
<div class="md:w-1/2">
<img src="{{ asset('uploads') . '/' . $post->image }}" alt="{{ $post->title }}">
<div class="p-3">
<div class="p-3 flex items-center gap-4">
@auth
<form method="POST" action="{{ route('posts.likes.store', $post) }}">
@csrf
<div class="my-4">
<button type="submit">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
stroke="currentColor" class="size-6">
<path stroke-linecap="round" stroke-linejoin="round"
d="M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z" />
</svg>
</button>
</div>
</form>
@endauth
<p>0 Likes</p>
</div>

View File

@ -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");