Рaндомное отображение из БД
Скажите, как настроить рандомный вывод из БД? Я использую такой способ. Но кол-во в random должно быть не больше кол-ва записей в БД, иначе будет ошибка(You requested 10 items, but there are only 1 items available.). Можно ли как то настроить, что можно было выставить число в random больше, чем записей в БД и без ошибки и без доп.запроса на проверку кол-ва записей предварительно (это нужно, чтобы не переставлять в коде всё время цифры рандома, в зависимости от БД). В чистом php такой ошибки нет, а laravel ругается.
$users = DB::table('users')
->where('rating','>=','4')
->select('users.name','users.prof','users.uid','users.rating')
->get()
->random(10);
Ответы (1 шт):
Автор решения: Павел Кулик
→ Ссылка
$randomCount = 10;
$users = $users->random($users->count() > $randomCount ? $randomCount : $users->count());
Так не будет выполнен доп. запрос к БД. Считайте кол-во записей в коллекции.