Можно ли использовать следующий orderByRaw(). Этот метод orderByRaw() возвращает продукты в том же порядке, что и методwhereIn(). Сейчас это только результаты в порядке orderByRaw, а не в orderBy().
Можно ли их объединить:
$ids;
$placeholders = implode(',',array_fill(0, count($ids), '?'));
Продукт:: whereIn('id', $ids)->orderByRaw("field(id,{$placeholders})" ,$ids)->orderBy('views', 'des')->orderBy('created_at', 'des ')->get();
Изменить:
Это SQL-код, который я получаю, когда выполняю toSql(). Почему это не работает?
SELECT *
FROM `products`
WHERE `id` IN ( ?, ?, ?, ?, ? )
ORDER BY Field(id, ?, ?, ?, ?, ?),
`views` DESC,
`create_at` DESC
Подробнее здесь: https://stackoverflow.com/questions/538 ... in-laravel