Mahmut Bayrı

Laravel: Sayfalama

Giriş

Diğer frameworklerde sayfalama uğraştırıcı olabilir. Laravel’de ise çok basittir. Laravel sayfalama bağlantılarını kolayca üretebilir. HTML çıktısı Bootstrap CSS framework. uyumludur.

Temel Kullanım

Query Builder Sonuçlarınını Sayfalama

Kayıtları sayfalamasnın birkaç yolu vardır. En kolayı Query Builder veya Eloquent Query sorgulama yöntemlerinde paginate metodudur.

İlk olarak bir sorgudaki paginate metodunun çağırılmasına göz atalım. Bu örnekte paginate metoduna geçirilen argüman göstermek istediğiniz kayıt sayısıdır. Bu durumda her sayfada 15 kayıt göstermek istiyoruz:

Not: Şimdilik sayfalama ilemleri groupBy durumu sağlıklı çalışmıyor. Eğer groupBy kullanmaya ithiyacınız varsa sayfalamayı elle oluşturun.

Kolay Sayfalama

Eğer sayfalamada yalnızca “Next” ve “Previous” bağlantılarını gösterecekseniz simplePaginate metodunu kullanın.

Eloquent Sonuçlarını Sayfalama

Eloquent sorguarını da sayfayayabilirsiniz. Bu örnekte User modelini her sayfada 15 olacak şekilde sayfalayalım. Gördüğünüz gibi “query builder” ile neredeyse aynı.

Tabi ki, where gibi kısıtlayıcılarınızdan sonra da paginate metodunu çağırabilirsiniz.

Eloquent modellerinizi sayfalarken simplePaginate metodunu da kullanabilirsiniz.

Elle Sayfalama Oluşturma

Bazen kayıtları gerçirerek sayfalamayı elle oluşturmak isterseniz. İhtiyacınıza göre Illuminate\Pagination\Paginator veya Illuminate\Pagination\LengthAwarePaginator kullanabilirsiniz.

Paginator sınıfının sonuç kümesinde kaç kayıt olduğunu bilmesine gerek yoktur. LengthAwarePaginator ise toplam sayıya ihtiyaç duyar.

Başka bir deyişle Paginator, simplePaginate metoduna; LengthAwarePaginator ise paginate metoduna karşılık gelir.

Sonuçları Görünümde Gösterme

wuery Builder veya Eoquent Queery’de simplePaginate veya paginate metodu çağırıldığında bir sayfalama kopyası alırsınız. paginate metodunu çağırdığınızda Illuminate\Pagination\LengthAwarePaginator örneğini alırınız. simplePaginate metodunu çağırdığınızda ise Illuminate\Pagination\Paginator örneğini alırsınız. Bu objeler sonuç kümesini tanımlamak için birkaç method sağlarlar. Bu yardımcı mertodlara ek olarak, sayfalama örneği döngüye sokulabilir.

render metodu bağlantıları oluşturacak. Her bir link uygun ?page değişkenini içerecek. Üretilen HTML çıktının Bootstrap CSS framework uyumlu olduğunu hatırlayınız.

Bağlantı Adresini Özelleştirme

setPath metodu bağlantılar oluşturulurken sayfalama tarafından kullanılan bağlantı adresini özelleştirmenizi saplar. Örneğin, http://example.com/custom/url?page=N gibi bir adres elde etmek istiyorsanız, setPath metoduna custom/url geçirmelisiniz.

Sayfalama Bağlantılarına Ekleme Yapmak

append metodunu kullarak sayfalama linklerine ekstra değişkenler ekleyebilirsiniz. Örneğin herbir sayfalama adresine &sort=votes eklemek için:

Hash (#) eklemek için fragment metodunu kullanabilirsiniz.

Daha Fazla Yardımcı Metod

Ek sayfalama bilgilerine ulaşmak için aşağıdaki metodlarını kullanabilirsiniz.

Sonuçları JSON’a Çevirme

toJson metodunu kullanarak json’a dönüştürebilirsiniz.

Örnek JSON Sayfalama