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-4ya dabootstrap-5kullanabilirsin (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.

