Laravel запрос sql - PullRequest
       6

Laravel запрос sql

0 голосов
/ 15 декабря 2018

Спокойной ночи.Я пытаюсь вернуть последнюю и только 1 вещь из базы данных.Но проблема в том, что 3 элемента были внесены в базу данных одновременно.Так что дата точно такая же, вплоть до секунд.Как получить последние данные по дате создания и идентификатору>> 1001 *

Посмотрите, что у меня ниже, что вызывало проблему:

$latest = $newInv->where('case_number', $request-> case_number)
    ->orderBy('created_at', 'DESC')
    ->latest()->first();

Что я надеялся сделать, но все жене может, как я могу написать это лучше, может быть?

$latest = $newInv->where('case_number', $request->case_number)
        ->orderBy('created_at', 'DESC')
        ->orderBy('id', 'ASC')
        ->latest()->first();

1 Ответ

0 голосов
/ 15 декабря 2018

Не нужно добавлять latest() и заказывать по идентификатору в запросе, должно работать следующее:

$latest = $newInv->where('case_number', $request->case_number)
         ->orderBy('created_at', 'DESC')->first();

DOCS

Самые последние и самые старые методы позволяютВы можете легко заказать результаты по дате.По умолчанию результат будет упорядочен по столбцу create_at.Или вы можете передать имя столбца, по которому хотите выполнить сортировку:

$user = DB::table('users')->latest()->first();

Подробнее см. На https://laravel.com/docs/5.7/queries#ordering-grouping-limit-and-offsetv

ОБНОВЛЕНИЕ

Еслиу вас есть то же значение для created_at, тогда должно работать следующее:

ПРИМЕЧАНИЕ: вам нужен порядок по id в порядке убывания, чтобы получить запись с> ID

 $latest = $newInv->where('case_number', $request->case_number)
         ->orderBy('created_at', 'DESC')
         ->orderBy('id', 'DESC')
         ->first();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...