ОБНОВЛЕНИЕ ДЛЯ ЛАРАВЕЛА 5.3
Я был рад обнаружить, что теперь это встроенная функция запросов! :D
Метод inRandomOrder
можно использовать для случайной сортировки результатов запроса. Например, вы можете использовать этот метод для получения случайного пользователя:
$randomUser = DB::table('users')
->inRandomOrder()
->first();
К сожалению, ни один из этих ответов не использует в полной мере коллекции Laravel 5. Если вы пришли сюда из Google, как и я, в поисках полностью нативного решения, посмотрите ниже!
Ответ от The Alpha имеет недостаток зависимости от базы данных, и Бенджамин, как он указал, может создать проблему, когда строки удаляются между ними. Крайне маловероятно, но все же возможно.
Вот однострочное решение для выбора случайных строк в Laravel 5+
// The setup
$numberOfRows = 4;
$models = Model::all(); // or use a ::where()->get();
// And the actual randomisation line
$randRows = $models->shuffle()->slice(0,numberOfRows);
И вуаля — удачного кодирования! Голосуйте за него, когда увидите его, чтобы он поднялся на странице :)
person
Stan Smulders
schedule
14.10.2015