У меня есть следующее имя таблицы, как проекты, подобные этой структуре,
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);
но это работает, но не фильтрует последние обновленные записи. как можно это исправить?
Попробуйте использовать 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;
Других решений пока нет …