Я предоставлю вам несколько методов реализации случайного поиска записей с нумерацией страниц в 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. Выберите метод, который лучше всего соответствует вашим потребностям, и соответствующим образом интегрируйте его в свой проект.