Есть следующий код:
$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 она работает.
Собственно как сделать пагинацию? Вариант, что отдать в пагинатор результат, а не билдер - знаю, но это крайний случай.
Помогло установка опций ['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]
);
Боюсь предположить, что необходимо добавить к запросу: ->getQuery()
$queryBuilder->groupby('DATE_FORMAT(v.createdAt, \'%Y-%m-%d\') as day')->getQuery()
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я решил обратиться к вам за помощью, ибо сам не понимаю как с этим боротьсяУ меня есть паблик-бот, который состоит в беседе, имеет полный доступ...