Laravel Paginate с OrderByRaw возвращает другой порядокPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel Paginate с OrderByRaw возвращает другой порядок

Сообщение Anonymous »

Я столкнулся с очень странной проблемой: мой запрос возвращает разный порядок в зависимости от размера пагинации:

Код: Выделить всё

$query->orderByRaw("CASE WHEN tracking_eta IS NOT NULL THEN tracking_eta ELSE arrival_date END DESC")
->paginate(23)
->withQueryString();
Это возвращает:
Изображение

И если я сделаю то же самое, но разбиваю на страницы 24, он вернет это:
Изображение

Для справки: значения track_eta и Arrival_date в данном конкретном случае одинаковы для обоих идентификаторов:

Код: Выделить всё

id: 219 arrival_date: 2024-09-17 06:00:00
tracking_eta: 2024-09-17 08:58:00

id: 218 arrival_date: 2024-09-17 06:00:00
tracking_eta: 2024-09-17 08:58:00
На первый взгляд это может быть не так важно, но когда клиент перемещается по страницам, на странице 1 идентификатор 218 будет отображаться последним, а когда он перейдет на страницу 2, идентификатор 218 будет отображаться первым... так что в основном идентификатор 219 исчезает.
Есть идеи, как я могу заставить результат всегда придерживаться одного и того же порядка?>
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»