Varsayılan olarak laravel'de sayfalama işlemleri bootstrap css çatısı altında yapılmaktadır ve buna uyumludur. Buraya kadar hiç bir sorun yok fakat işi bilmeyen hem müşteri, front-end(pardon hakaret oldu, dökümcü arkadaşlar diyecektim) işi yapan arkadaşlardan ötürü dökümler Allah'a emanet oluyor ve buda benim gibi arka plan(back-end) geliştiricilerinin küfür dağarcığını geliştirmelerine yardımcı oluyor. Buradan bunu sağlayan arkadaşlarımıza teşekkürü bir borç bilirim. Şimdi böyle çöp bir dökümde bizim gibi arkadaşlar laravel ile çalışıyorsa mecburen sayfalama işlemlerini buna uygun yapmak zorundadır veyahut yeni bir sınıf yazarak laravel projesine dahil edecektir. Benim blog için kullandığım html temada da bu sorundan müzdariptim ve çözümü en sağlıklısı olarak varsayılan pagination view dosyalarını yayınlayıp onun üzerinden düzenlemeler yaptım. Buna laravel custom pagination view denmektedir.
İlk önce terminalden artisan yardımıyla laravel paginate için kullandığı varsayılan blade dosyalarını projemizde gösterelim. Komut çalıştığında dosyalar resources/views/vendor/ altına yerleşektir.
Bu işlem sonucunda dizin altında bootstrap-4.blade.php dosyası oluştu. Bu bizim laraveldeki kullanılan varsayılan sayfalama blade dosyasıdır. Şimdi içerideki değerler ile kendi css yapımıza uygun blade yapısı oluşturabiliriz. Route içinde yada controller içinde aldığımız içerikleri örnek olarak vereceğim şekilde sayfalamasını yapmış olup view dosyamıza gönderiyoruz. Buradaki 5 değeri o an sayfadaki gösterilen içerik sayısıdır.
Görüldüğü üzere $contents değişkenimizi view-name.blade.php dosyamıza aktarımını gerçekleştirdik. Buraya kadar her şey tamam ise view içerisinde bunu normal şartlarda {{ $contents->links() }} kullanıyorduk şimdi örnek olarak resources/views/vendor/pagination klasörü içerisinde selcuk.blade.php adı altında bir sayfalama blade dosyası oluşturduğumu varsayarak view içerisinde bu şekilde kullanacağız.
Yaptığımız işlemler bu kadardı ve başarıyla css yapımıza uygun bir sayfalama örneği elde etmiş olduk. Daha detaylı bilgilendirmeleri bu sayfadan öğrenebilirsiniz. Paraya gerek yok bir Allah razı olsun yeter :)
İlk önce terminalden artisan yardımıyla laravel paginate için kullandığı varsayılan blade dosyalarını projemizde gösterelim. Komut çalıştığında dosyalar resources/views/vendor/ altına yerleşektir.
php artisan vendor:publish --tag=laravel-pagination
Bu işlem sonucunda dizin altında bootstrap-4.blade.php dosyası oluştu. Bu bizim laraveldeki kullanılan varsayılan sayfalama blade dosyasıdır. Şimdi içerideki değerler ile kendi css yapımıza uygun blade yapısı oluşturabiliriz. Route içinde yada controller içinde aldığımız içerikleri örnek olarak vereceğim şekilde sayfalamasını yapmış olup view dosyamıza gönderiyoruz. Buradaki 5 değeri o an sayfadaki gösterilen içerik sayısıdır.
$contents = Model::orderBy('id', 'desc')->paginate(5);
return view('view-name', compact('contents'));
Görüldüğü üzere $contents değişkenimizi view-name.blade.php dosyamıza aktarımını gerçekleştirdik. Buraya kadar her şey tamam ise view içerisinde bunu normal şartlarda {{ $contents->links() }} kullanıyorduk şimdi örnek olarak resources/views/vendor/pagination klasörü içerisinde selcuk.blade.php adı altında bir sayfalama blade dosyası oluşturduğumu varsayarak view içerisinde bu şekilde kullanacağız.
{{ $contents->links('vendor.pagination.selcuk') }}
Yaptığımız işlemler bu kadardı ve başarıyla css yapımıza uygun bir sayfalama örneği elde etmiş olduk. Daha detaylı bilgilendirmeleri bu sayfadan öğrenebilirsiniz. Paraya gerek yok bir Allah razı olsun yeter :)