Я пытаюсь вернуть постраничные результаты в зависимости от возраста пользователей. Броски Laravel и ошибка при использовании selectRaw()
в сочетании с paginate()
.
Вот ошибка:
Подсветка \ База данных \ QueryException: SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «age_months» в «имеющем предложении» (SQL: выберите количество (*) как совокупность из ads
, имеющего age_months <= 3) </p>
Вот код:
Ad::selectRaw('TIMESTAMPDIFF(YEAR, DATE(ads.birth_date), CURDATE()) AS age_months')
->having(\DB::raw('age_months'), '<=', $request->max_age_months)
->paginate();
Как видите, count(*)
переопределяет selectRaw()
, что делает его устаревшим. Я попытался заменить paginate()
на get()
, и это работает, и производит этот запрос:
выберите TIMESTAMPDIFF (ГОД, ДАТА (ads.birth_date), CURDATE ()) AS age_months из ads
, имеющего age_months <=? </p>
Это ошибка или я что-то не так делаю?