Реализация случайного поиска записей с нумерацией страниц в Laravel 8: методы и примеры

Я предоставлю вам несколько методов реализации случайного поиска записей с нумерацией страниц в Laravel 8, а также примеры кода. Вот несколько подходов, которые вы можете рассмотреть:

Метод 1: использование функций orderByRaw() и RAND()

use Illuminate\Support\Facades\DB;
$perPage = 10; // Number of records per page
$page = 1; // Current page number
$records = DB::table('your_table')
    ->select('*')
    ->orderByRaw('RAND()')
    ->offset(($page - 1) * $perPage)
    ->limit($perPage)
    ->get();

Метод 2: использование метода inRandomOrder()

$records = DB::table('your_table')
    ->inRandomOrder()
    ->offset(($page - 1) * $perPage)
    ->limit($perPage)
    ->get();

Метод 3. Использование необработанного SQL-запроса

$records = DB::select("
    SELECT * FROM your_table
    ORDER BY RAND()
    LIMIT $perPage OFFSET " . (($page - 1) * $perPage)
);

Метод 4. Использование функции shuffle()

$records = DB::table('your_table')->get()->shuffle()->forPage($page, $perPage);

Метод 5. Использование метода take() со случайным ключом

$randomKey = DB::table('your_table')->pluck('id')->random();
$records = DB::table('your_table')
    ->where('id', '>=', $randomKey)
    ->limit($perPage)
    ->get();

Это всего лишь несколько примеров того, как можно реализовать случайное извлечение записей с нумерацией страниц в Laravel 8. Выберите метод, который лучше всего соответствует вашим потребностям, и соответствующим образом интегрируйте его в свой проект.