liking posts
This commit is contained in:
parent
f1dd904b72
commit
0e7b23cb1e
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -8,4 +8,9 @@ use Illuminate\Database\Eloquent\Model;
|
||||
class Like extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $fillable = [
|
||||
"user_id",
|
||||
"post_id"
|
||||
];
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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");
|
||||
|
Loading…
x
Reference in New Issue
Block a user