- 
                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>