From a96913bffaedfaaccb6217018b5d04454d0c08b8 Mon Sep 17 00:00:00 2001 From: Micha Date: Fri, 23 Jan 2026 19:26:40 +0100 Subject: [PATCH] fixed post count --- app/Http/Controllers/ForumController.php | 2 +- app/Http/Controllers/PortalController.php | 8 ++++---- app/Http/Controllers/PostController.php | 6 +++--- app/Http/Controllers/ThreadController.php | 10 +++++----- app/Models/User.php | 5 +++++ 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/ForumController.php b/app/Http/Controllers/ForumController.php index 597c810..a0d7960 100644 --- a/app/Http/Controllers/ForumController.php +++ b/app/Http/Controllers/ForumController.php @@ -212,7 +212,7 @@ class ForumController extends Controller 'parent' => $forum->parent_id ? "/api/forums/{$forum->parent_id}" : null, 'position' => $forum->position, 'threads_count' => $forum->threads_count ?? 0, - 'posts_count' => $forum->posts_count ?? 0, + 'posts_count' => ($forum->posts_count ?? 0) + ($forum->threads_count ?? 0), 'views_count' => (int) ($forum->threads_sum_views_count ?? 0), 'last_post_at' => $lastPost?->created_at?->toIso8601String(), 'last_post_user_id' => $lastPost?->user_id, diff --git a/app/Http/Controllers/PortalController.php b/app/Http/Controllers/PortalController.php index 6503c96..bb2c876 100644 --- a/app/Http/Controllers/PortalController.php +++ b/app/Http/Controllers/PortalController.php @@ -33,7 +33,7 @@ class PortalController extends Controller ->withoutTrashed() ->withCount('posts') ->with([ - 'user' => fn ($query) => $query->withCount('posts')->with(['rank', 'roles']), + 'user' => fn ($query) => $query->withCount(['posts', 'threads'])->with(['rank', 'roles']), 'latestPost.user.rank', 'latestPost.user.roles', ]) @@ -80,7 +80,7 @@ class PortalController extends Controller 'parent' => $forum->parent_id ? "/api/forums/{$forum->parent_id}" : null, 'position' => $forum->position, 'threads_count' => $forum->threads_count ?? 0, - 'posts_count' => $forum->posts_count ?? 0, + 'posts_count' => ($forum->posts_count ?? 0) + ($forum->threads_count ?? 0), 'views_count' => (int) ($forum->threads_sum_views_count ?? 0), 'last_post_at' => $lastPost?->created_at?->toIso8601String(), 'last_post_user_id' => $lastPost?->user_id, @@ -100,13 +100,13 @@ class PortalController extends Controller 'body' => $thread->body, 'forum' => "/api/forums/{$thread->forum_id}", 'user_id' => $thread->user_id, - 'posts_count' => $thread->posts_count ?? 0, + 'posts_count' => ($thread->posts_count ?? 0) + 1, 'views_count' => $thread->views_count ?? 0, 'user_name' => $thread->user?->name, 'user_avatar_url' => $thread->user?->avatar_path ? Storage::url($thread->user->avatar_path) : null, - 'user_posts_count' => $thread->user?->posts_count, + 'user_posts_count' => ($thread->user?->posts_count ?? 0) + ($thread->user?->threads_count ?? 0), 'user_created_at' => $thread->user?->created_at?->toIso8601String(), 'user_rank_name' => $thread->user?->rank?->name, 'user_rank_badge_type' => $thread->user?->rank?->badge_type, diff --git a/app/Http/Controllers/PostController.php b/app/Http/Controllers/PostController.php index 843b5cd..bda5433 100644 --- a/app/Http/Controllers/PostController.php +++ b/app/Http/Controllers/PostController.php @@ -14,7 +14,7 @@ class PostController extends Controller { $query = Post::query()->withoutTrashed()->with([ 'user' => fn ($query) => $query - ->withCount(['posts', 'thanksGiven', 'thanksReceived']) + ->withCount(['posts', 'threads', 'thanksGiven', 'thanksReceived']) ->with(['rank', 'roles']), ]); @@ -52,7 +52,7 @@ class PostController extends Controller $post->loadMissing([ 'user' => fn ($query) => $query - ->withCount(['posts', 'thanksGiven', 'thanksReceived']) + ->withCount(['posts', 'threads', 'thanksGiven', 'thanksReceived']) ->with(['rank', 'roles']), ]); @@ -96,7 +96,7 @@ class PostController extends Controller 'user_avatar_url' => $post->user?->avatar_path ? Storage::url($post->user->avatar_path) : null, - 'user_posts_count' => $post->user?->posts_count, + 'user_posts_count' => ($post->user?->posts_count ?? 0) + ($post->user?->threads_count ?? 0), 'user_created_at' => $post->user?->created_at?->toIso8601String(), 'user_location' => $post->user?->location, 'user_thanks_given_count' => $post->user?->thanks_given_count ?? 0, diff --git a/app/Http/Controllers/ThreadController.php b/app/Http/Controllers/ThreadController.php index 02197d5..21c4224 100644 --- a/app/Http/Controllers/ThreadController.php +++ b/app/Http/Controllers/ThreadController.php @@ -19,7 +19,7 @@ class ThreadController extends Controller ->withMax('posts', 'created_at') ->with([ 'user' => fn ($query) => $query - ->withCount(['posts', 'thanksGiven', 'thanksReceived']) + ->withCount(['posts', 'threads', 'thanksGiven', 'thanksReceived']) ->with(['rank', 'roles']), 'latestPost.user.rank', 'latestPost.user.roles', @@ -47,7 +47,7 @@ class ThreadController extends Controller $thread->refresh(); $thread->loadMissing([ 'user' => fn ($query) => $query - ->withCount(['posts', 'thanksGiven', 'thanksReceived']) + ->withCount(['posts', 'threads', 'thanksGiven', 'thanksReceived']) ->with(['rank', 'roles']), 'latestPost.user.rank', 'latestPost.user.roles', @@ -79,7 +79,7 @@ class ThreadController extends Controller $thread->loadMissing([ 'user' => fn ($query) => $query - ->withCount(['posts', 'thanksGiven', 'thanksReceived']) + ->withCount(['posts', 'threads', 'thanksGiven', 'thanksReceived']) ->with(['rank', 'roles']), 'latestPost.user.rank', 'latestPost.user.roles', @@ -122,13 +122,13 @@ class ThreadController extends Controller 'body' => $thread->body, 'forum' => "/api/forums/{$thread->forum_id}", 'user_id' => $thread->user_id, - 'posts_count' => $thread->posts_count ?? 0, + 'posts_count' => ($thread->posts_count ?? 0) + 1, 'views_count' => $thread->views_count ?? 0, 'user_name' => $thread->user?->name, 'user_avatar_url' => $thread->user?->avatar_path ? Storage::url($thread->user->avatar_path) : null, - 'user_posts_count' => $thread->user?->posts_count, + 'user_posts_count' => ($thread->user?->posts_count ?? 0) + ($thread->user?->threads_count ?? 0), 'user_created_at' => $thread->user?->created_at?->toIso8601String(), 'user_location' => $thread->user?->location, 'user_thanks_given_count' => $thread->user?->thanks_given_count ?? 0, diff --git a/app/Models/User.php b/app/Models/User.php index 8646910..a61eeb6 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -107,6 +107,11 @@ class User extends Authenticatable implements MustVerifyEmail return $this->hasMany(Post::class); } + public function threads(): HasMany + { + return $this->hasMany(Thread::class); + } + public function thanksGiven(): HasMany { return $this->hasMany(PostThank::class);