From 85b96144c050b3afe2490bd6c3cd28a697626ee5 Mon Sep 17 00:00:00 2001 From: Mark Gregory Date: Tue, 16 Jun 2026 20:05:13 +0100 Subject: [PATCH] Attempt to fix N+1 issues --- Modules/Helpdesk/Livewire/TicketShow.php | 9 ++++++--- Modules/Helpdesk/changelog.yaml | 7 +++++++ Modules/Helpdesk/module.json | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Modules/Helpdesk/Livewire/TicketShow.php b/Modules/Helpdesk/Livewire/TicketShow.php index 28907e8e..a739ccdb 100644 --- a/Modules/Helpdesk/Livewire/TicketShow.php +++ b/Modules/Helpdesk/Livewire/TicketShow.php @@ -55,6 +55,9 @@ final class TicketShow extends Component public function mount(Ticket $ticket): void { + Auth::user()?->loadMissing('company'); + $ticket->loadMissing(['owner.company', 'agent.company']); + $this->authorize('view', $ticket); $this->ticket = $this->freshTicket($ticket); $this->status_id = $this->ticket->status_id; @@ -295,13 +298,13 @@ final class TicketShow extends Component 'ratings', 'tags', 'checklistItems', - 'attachments.user', + 'attachments.user.company', 'gitCommits.repository', ]) ?? $ticket; $comments = \Modules\Helpdesk\Models\Comment::query() ->where('ticket_id', $ticket->id) - ->with(['user', 'attachments.user']) + ->with(['user.company', 'attachments.user.company']) ->oldest() ->get(); @@ -326,7 +329,7 @@ final class TicketShow extends Component $columns[] = 'company_id'; } - $query = User::query()->select($columns)->orderBy('name'); + $query = User::query()->select($columns)->with('company')->orderBy('name'); if ($this->ticket->company_id !== null && Schema::hasColumn('users', 'company_id')) { $tenantUsers = (clone $query) diff --git a/Modules/Helpdesk/changelog.yaml b/Modules/Helpdesk/changelog.yaml index d89569f5..33a353a2 100644 --- a/Modules/Helpdesk/changelog.yaml +++ b/Modules/Helpdesk/changelog.yaml @@ -197,3 +197,10 @@ versions: - Eager-loaded requester and agent company relations on the ticket detail/edit views to prevent Debugbar N+1 alerts. - Kept agent, status and priority persistence on CSRF-protected POST routes with compact action buttons. - Kept module.json version in sync with changelog.yaml. + + "1.3.11": + changed: + - Eager-loaded the current user company, ticket requester company, ticket agent company, comment user company and attachment user company on the ticket detail page to remove the remaining Debugbar N+1 alert. + - Eager-loaded company data for assignable agent dropdown users without changing agent, status or priority persistence behaviour. + - Kept module.json version in sync with changelog.yaml. + diff --git a/Modules/Helpdesk/module.json b/Modules/Helpdesk/module.json index aaafa75a..1e443c6b 100644 --- a/Modules/Helpdesk/module.json +++ b/Modules/Helpdesk/module.json @@ -22,5 +22,5 @@ "Modules\\Helpdesk\\Providers\\HelpdeskServiceProvider" ], "files": [], - "version": "1.3.10" + "version": "1.3.11" }