Skip to content

Commit ead4fd4

Browse files
committed
fix: get always owner to avoid N+1 on ticket repository
1 parent f96ca27 commit ead4fd4

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

app/Repositories/Summit/DoctrineSummitAttendeeTicketRepository.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ private function ensureJoin(QueryBuilder $qb, string $alias): void
8989
*/
9090
private function requiredAliases(?Filter $filter, ?Order $order): array
9191
{
92-
$need = [];
92+
$need = ['a' => true]; // owner always
9393

9494
$has = fn(string $f) => $filter?->hasFilter($f) ?? false;
9595
$ord = fn(string $f) => $order?->hasOrder($f) ?? false;
@@ -425,6 +425,11 @@ protected function applyExtraJoins(QueryBuilder $query, ?Filter $filter = null,
425425
$this->ensureJoin($query, $alias);
426426
}
427427

428+
// owner is always selected to prevent N+1
429+
if (\in_array('a', $query->getAllAliases(), true)) {
430+
$query->addSelect('a'); // to-one fetch join is safe with pagination
431+
}
432+
428433
return $query;
429434
}
430435

0 commit comments

Comments
 (0)