дополнительный индекс перехода для разбитого на страницы списка элементов - PullRequest
0 голосов
/ 17 июня 2020

Я ищу решение, чтобы построить и показать дополнительный индекс к пагинатору. У меня есть ~ 3000 элементов, которые распределяются на ~ 60 страниц (50 элементов на страницу).
Кроме того, мне нужен индекс от A до Z, где я могу перейти на ту страницу, где элементы, начинающиеся с символа, появляются первыми в список.


Моя первая попытка, но, возможно, я думаю о многом слишком сложном:

Я подумал о том, чтобы сделать запрос вроде:

SELECT left(name,1) as letter,count(*) as number 
  FROM mytable
  WHERE pid in (list)
  ORDER BY name
  GROUP BY letter;

затем добавление чисел для получения смещения с последующим делением по размеру страницы, чтобы получить страницу, на которой будут начинаться элементы.

Но он уже вылетел при построении запроса:

$myQuery = $queryBuilder
            ->select('left(last_name,1) as letter,count(*) as number')
            ->from('fe_users')
            ->where(
                $queryBuilder->expr()->in('pid', $pidList, true)
            )
            ->orderBy('last_name', 'ASC')
            ->groupBy('letter');

, что приводит к в:
QueryBuilder::quoteIdentifiersForSelect() could not parse the select left(last_name,1) as letter,count(*) as number.

...