-
Notifications
You must be signed in to change notification settings - Fork 0
09.b.Pagination
Sayfalama bir araç olarak v2.0.6
ile birlikte eklendi. İçeriklerinizi daha kolay bir şekilde sayfalayabilmeniz için geliştirildi.
Kullanım;
$res = DB::table('posts')
->select('id', 'title')
->where('status', 1)
->pagination(($_GET['page'] ?? 1), 10);
foreach($res->asAssoc()->rows() as $row){
echo '#' . $row['id'] . ' ' . $row['title']; // Sayfadaki içerikleri ekrana bas.
}
echo $res->toHTML();
Not : Pagination kullanırken en doğru sonucu elde etmek için limit()
ve offset()
kullanmayın.
Sayfalama için kullanacağınız link yapısını/şemasını pagination()
yönteminin üçüncü parametresi olarak verebilirsiniz.
Not : {page}
ifadesi sayfa numarasını ifade eder.
$res = DB::table('posts')
->select('id', 'title')
->where('status', 1)
->pagination(($_GET['page'] ?? 1), 10, 'http://example.com/page/{page}');
foreach($res->asAssoc()->rows() as $row){
echo '#' . $row['id'] . ' ' . $row['title']; // Sayfadaki içerikleri ekrana bas.
}
echo $res->toHTML();
Örnek HTML çıktısı şuna benzer;
<!-- pagination -->
<nav>
<ul>
<li><a href="http://example.com/page/4">«</a></li>
<li><a href="http://example.com/page/1">1</a></li>
<li><a href="http://example.com/page/2">2</a></li>
<li><a href="http://example.com/page/3">3</a></li>
<li><a href="http://example.com/page/4">4</a></li>
<li class="active"><a href="http://example.com/page/5">5</a></li>
<li><a href="http://example.com/page/6">6</a></li>
<li><a href="http://example.com/page/7">7</a></li>
<li><a href="http://example.com/page/8">8</a></li>
<li><a href="http://example.com/page/6">»</a></li>
</ul>
</nav>
Varsayılan olarak oldukça basit bir html liste elemanı olarak döner ve 8-10 adet link gösterecek şekilde yapılandırılır.
Gösterilecek eleman sayısını arttırmak için; setDisplayedPage()
yöntemini, toHTML()
yönteminden önce kullanabilirsiniz. Bu yöntem gösterilecek maksimum sayfa sayısını bir çift sayı olarak alır. Tek sayı verilirse +1 ile çift sayı yapılarak kullanılır.
$res = DB::table('posts')
->select('id', 'title')
->where('status', 1)
->pagination(($_GET['page'] ?? 1), 10, 'http://example.com/page/{page}');
foreach($res->asAssoc()->rows() as $row){
echo '#' . $row['id'] . ' ' . $row['title']; // Sayfadaki içerikleri ekrana bas.
}
echo $res->setDisabledPage(12)->toHTML();
Üretilecek html çıktısındaki html etiketlerinin attribute değerlerini tanımlamak için toHTML()
metoduna bir dizi olarak tanımlayabilirsiniz.
$res = DB::table('posts')
->select('id', 'title')
->where('status', 1)
->pagination(($_GET['page'] ?? 1), 10, 'http://example.com/page/{page}');
foreach($res->asAssoc()->rows() as $row){
echo '#' . $row['id'] . ' ' . $row['title']; // Sayfadaki içerikleri ekrana bas.
}
echo $res->toHTML([
'next_label' => 'Sonraki Sayfa',
'prev_label' => 'Önceki Sayfa',
'nav' => [
'area-label' => 'Page navigation example',
'id' => 'pagination',
],
'ul' => ['class' => 'pagination'],
'li' => [
'class' => 'page-item',
'a' => [
'class' => 'page-link',
],
],
]);
Örnek HTML çıktısı şuna benzer;
<!-- pagination -->
<nav area-label="Page navigation example" id="pagination">
<ul class="pagination">
<li class="page-item"><a class="page-link" href="http://example.com/page/4">Önceki Sayfa</a></li>
<li class="page-item"><a class="page-link" href="http://example.com/page/1">1</a></li>
<li class="page-item"><a class="page-link" href="http://example.com/page/2">2</a></li>
<li class="page-item"><a class="page-link" href="http://example.com/page/3">3</a></li>
<li class="page-item"><a class="page-link" href="http://example.com/page/4">4</a></li>
<li class="page-item active"><a class="page-link" href="http://example.com/page/5">5</a></li>
<li class="page-item"><a class="page-link" href="http://example.com/page/6">6</a></li>
<li class="page-item"><a class="page-link" href="http://example.com/page/7">7</a></li>
<li class="page-item"><a class="page-link" href="http://example.com/page/8">8</a></li>
<li class="page-item"><a class="page-link" href="http://example.com/page/6">Sonraki Sayfa</a></li>
</ul>
</nav>