Добрый день!
Как сделать такую выборку с помощью eloquent ?
Исходные данные: есть pivot-таблица, хранящая изменения статусов записей (record_id) по категориям с такими полями: id, record_id, category_id, old_status_id, updated_status_id, updated_at.
Задача такая: получить строку (если она есть) с последним по дате изменения статусом (например, равным 2) для определенной записи по каждой категории (если она есть в таблице).
Каждая запись имеет отношение с pivot-таблицей (один-ко-многим).
Думаю выглядеть должно как-то так:
return $query
->wherehas('status_repositories', function($q)
{
$q->groupBy('category_id')->having(function( $q_nest )
{
$q_nest->orderBy('updated_at', 'DESC')->take(1);
}
)
->where('updated_status_id', '2');
});