Laravel 10.x karkasas. Įrašų puslapiavimas

Sukurkime puslapiavimą šalių sąrašui. Tam tikslui pagal ankstesnes pamokas sukurkite šalims modelį, valdiklį, vaizdus ir maršrutą. Atsidarykite valdiklį ir metode index() įrašykite:
public function index()
{
    $countries = Country::paginate(25);
    return view('admin.countries.index', compact('countries'));
}
Metodui paginate() reikia nurodyti skaičių, kuris reikš, kiek įrašų norėsite matyti viename puslapyje.
Atsidarykite šalių vaizdą ..\library\resources\views\admin\countries\index.blade.php ir po įrašų lentele įrašykite kodą, kuris atvaizduos puslapiavimą:
<table>
...
</table>
{{ $countries->links() }}
Kadangi dizainui naudojame Bootstrap 5 karkasą ir Laravel karkasas turi jo palaikymą, nurodykime, kad ir puslapiavimui naudosime Bootstrap 5 stilius.
Atsidarykite failą ..\library\app\Providers\AppServiceProvider.php ir jo metode boot() nurodykite:
public function boot()
{
    Paginator::useBootstrapFive();
}
Puslapiavimo stilių galima keisti pagal savo poreikius. Pavyzdžiui, pridėkime papildomus du mygtukus, kurie nukreips į pradinį ir paskutinį puslapius.
Komandinėje eilutėje įvykdykite komandą, kuri nukopijuos atitinkamus failus į vaizdų katalogą:
php artisan vendor:publish --tag=laravel-pagination
Tada atsidarykite failą ..\library\resources\views\vendor\pagination\bootstrap-5.blade.php ir pakeiskite atitinkamas eilutes į šias:
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
    <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.first')">
        <span class="page-link" aria-hidden="true">«</span>
    </li>
    <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')">
        <span class="page-link" aria-hidden="true">‹</span>
    </li>
@else
    <li class="page-item">
        <a class="page-link" href="{{ \Request::url() }}" rel="first" aria-label="@lang('pagination.first')">«</a>
    </li>
    <li class="page-item">
        <a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')">‹</a>
    </li>
@endif

...

{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
    <li class="page-item">
        <a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">›</a>
    </li>
    <li class="page-item">
        <a class="page-link" href="{{ \Request::url().'?page='.$paginator->lastPage() }}" rel="last" aria-label="@lang('pagination.last')">»</a>
    </li>
@else
    <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
        <span class="page-link" aria-hidden="true">›</span>
    </li>
    <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.last')">
        <span class="page-link" aria-hidden="true">»</span>
    </li>
@endif
Daugiau apie puslapiavimą skaitykite oficialioje Laravel 10.x dokumentacijoje, skiltyje Database: Pagination.

Paskutinį kartą puslapis keistas 2023-04-24

© Joana Katina 2016-2024. Visos teisės saugomos