Symfony KnpBundle пагинация с GroupBy и DATE_FORMAT

185
08 июня 2021, 20:10

Есть следующий код:

        $queryBuilder = $em->createQueryBuilder();
        $queryBuilder->from(StatVisit::class, 'v');
        $queryBuilder->addselect('count(v.id) as visitCount');
        $queryBuilder->addselect('DATE_FORMAT(v.createdAt, \'%Y-%m-%d\') as day');
        $queryBuilder->groupby('day');
        $pagination = $paginator->paginate(
            $queryBuilder, /* query NOT result */
            $request->query->getInt('page', 1)/*page number*/,
            10/*limit per page*/
        );

Запрос с группировкой по дате. Без пагинации - все работает хорошо. Когда использую пагинацию, то выдается ошибка:

Notice: Undefined index: day

Пагинатор - KnpPaginatorBundle

Если делать

$queryBuilder->groupby('DATE_FORMAT(v.createdAt, \'%Y-%m-%d\') as day')

То не находится функция DATE_FORMAT. Хотя дополнения установлены, да и в select она работает.

Собственно как сделать пагинацию? Вариант, что отдать в пагинатор результат, а не билдер - знаю, но это крайний случай.

Answer 1

Помогло установка опций ['distinct' => false, 'wrap-queries' => true]

 $pagination = $paginator->paginate(
            $queryBuilder, /* query NOT result */
            $request->query->getInt('page', 1)/*page number*/,
            10/*limit per page*/,
            ['distinct' => false, 'wrap-queries' => true]
        );
Answer 2

Боюсь предположить, что необходимо добавить к запросу: ->getQuery()

$queryBuilder->groupby('DATE_FORMAT(v.createdAt, \'%Y-%m-%d\') as day')->getQuery()
READ ALSO
Проблема с chat_invite_user_by_link (объект messages)

Проблема с chat_invite_user_by_link (объект messages)

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

226
Не работает json_encode с большим массивом

Не работает json_encode с большим массивом

Не работает json_encode с большим массивом

157
Прием поддоменов в htaccess

Прием поддоменов в htaccess

Делаю автоматические поддомены

103
Часть ссылки как параметр [дубликат]

Часть ссылки как параметр [дубликат]

Допустим, есть ссылка: «wwwexample

112