Как получить только последнюю запись обновления из таблицы данных в Laravel 5.6?

У меня есть следующее имя таблицы, как проекты, подобные этой структуре,

id    name    adtype created_at    updated_at
1     gobba     1      2018-02-25    2018-02-25
2     manna     0      2018-04-25    2018-04-25
3     alaya     1      2017-12-28    2017-12-28

Мне нужно получить только один результат, связанный с последней обновленной записью и типом объявления == 1, я кодирую следующий контроллер, для этого,

 public function showad()
{
$projects = Vehicle::with('uploads')
->where('adtype','=',1)
->latest('updated_at');
return view('vehicles.slider')->withProjects($projects);

но это работает, но не фильтрует последние обновленные записи. как можно это исправить?

1

Решение

Попробуйте использовать ORDER BY а также LIMIT:

$projects = Vehicle::with('uploads')
->where('adtype', '=', 1)
->orderBy('updated_at', 'desc')
->take(1)
->get();

Это должно соответствовать следующему необработанному запросу MySQL:

SELECT *
FROM uploads
WHERE adtype = 1
ORDER BY updated_at DESC
LIMIT 1;
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector