РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppinPmRcPn 29 of 41 menu
◀ ▶

Пагинация в Inertia

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

Метод paginate отдаёт одну страницу строк. Сами записи лежат в поле data объекта, адрес следующей и предыдущей страницы - в next_page_url и prev_page_url. Переход делают компонентом Link: иначе браузер скачает документ как при обычной ссылке.

Давайте отдадим по две записи на страницу:

<?php use App\Models\Post; use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::get('/posts', function () { return Inertia::render('Posts/Index', [ 'posts' => Post::orderBy('id')->paginate(2), ]); }); ?>

Давайте выведем строки текущей страницы и ссылки перехода:

<script setup> import { Link } from '@inertiajs/vue3' defineProps({ posts: Object, }) </script> <template> <div v-for="post in posts.data" :key="post.id" > {{ post.title }} </div> <Link v-if="posts.prev_page_url" :href="posts.prev_page_url" > Previous </Link> <Link v-if="posts.next_page_url" :href="posts.next_page_url" > Next </Link> </template>

Сделайте список работников по две строки на экран, чтобы переход на следующую страницу не скачивал документ заново.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить