Laravel Pagination (Sayfalama) Nasıl Özelleştirilir?

Laravel Pagination (Sayfalama) Nasıl Özelleştirilir?

Laravel Pagination (Sayfalama) Nasıl Özelleştirilir?

Laravel’de pagination (sayfalama) işlemi varsayılan olarak Tailwind CSS ile gelir. Eğer sen Bootstrap kullanıyorsan bunu Laravel’e uyarlaman gerekiyor. 

1. Bootstrap ile Pagination Kullanma

Laravel’de pagination view’larını Bootstrap uyumlu hale getirmek için:

{{ $users->links('pagination::bootstrap-5') }}

  • bootstrap-4 ya da bootstrap-5 kullanabilirsin (projende kullandığın sürüme göre).

  • Bu şekilde Laravel, hazır Bootstrap pagination şablonlarını kullanır.

2. Varsayılan Olarak Bootstrap Kullanma

Her yerde links('pagination::bootstrap-5') yazmak istemezsen AppServiceProvider içine ekleyebilirsin:

app/Providers/AppServiceProvider.php


 

use Illuminate\Pagination\Paginator;

public function boot(): void

{ Paginator::useBootstrapFive();

// Eğer Bootstrap 4 kullanıyorsan:

// Paginator::useBootstrapFour();

}

Bunu yaptıktan sonra {{ $users->links() }} direkt Bootstrap tasarımıyla gelecektir.

 

3. Pagination Görünümünü Özelleştirme

Eğer Bootstrap’in default tasarımından farklı bir şey istiyorsan kendi blade dosyanı oluşturabilirsin.

Terminalden:

php artisan vendor:publish --tag=laravel-pagination

 

Bunu yaptığında resources/views/vendor/pagination/ klasörü oluşur. İçinde:

  • bootstrap-4.blade.php

  • bootstrap-5.blade.php

  • default.blade.php

  • tailwind.blade.php

gibi benzer dosyalar gelecektir.

 

Sen bootstrap-5.blade.php dosyasını açıp istediğin gibi buton tasarımını, ikonları, class’ları değiştirebilirsin. 

4. Kullanım Örneği

Controller:

$users = User::paginate(10);
return view('users.index', compact('users'));

 

View:

 

<table class="table table-striped">
    <thead>
        <tr>
            <th>#</th>
            <th>Ad</th>
            <th>Email</th>
        </tr>
    </thead>
    <tbody>
        @foreach ($users as $user)
            <tr>
                <td>{{ $loop->iteration }}</td>
                <td>{{ $user->name }}</td>
                <td>{{ $user->email }}</td>
            </tr>
        @endforeach
    </tbody>
</table>

<!-- Pagination -->
<div class="d-flex justify-content-center">
    {{ $users->links() }}
</div>

 

Laravel ile projenize yeni bir şeyler ekletmek ya da özel projelerinizi hayata geçirmek istiyorsanız bizimle iletişime geçebilirsiniz.