Laravel Метод разбиения на страницы получает только определенное количество c количество строк из базы данных, но не получает все данные - PullRequest
1 голос
/ 03 августа 2020

Я пытаюсь добавить разбиение на страницы в своей таблице данных. Но когда я использую разбиение на страницы (25), оно выводит только 25 строк из базы данных и показывает, что общее число для объекта равно 25. нет 2 | 3 | 4 | Следующие кнопки к go к следующим данным. Он не переносит все данные из базы данных и не разбивает их на страницы.

blade:

<table id="example1" class="table table-bordered table-hover">
    <thead>
    <tr>
        <th>SL</th>
        <th>Date</th>
        <th>Title</th>
    </tr>
    </thead>
    <tbody>
    <?php
    $i = 0;
    foreach($leads_list as $data){
    $i++;
    ?>
        <tr>
            <td><?php echo $i;?></td>
            <td>
                {{$data->created_at}}
            </td>
            <td>
                {{$data->title}}
            </td>
    
        </tr>
    <?php } ?>

    </tbody>
</table>

javascript:

$(function () {
    $("#example1").DataTable({
        "pageLength": 100,
        "responsive": true,
        "autoWidth": false,
    });
});

контроллер:

$leads_list = DB::table('leads')
    ->paginate(15);

return view("leads.index", compact('leads_list'));

хотите получить все данные из базы данных и показать их в таблице с 15 данных на каждой странице. но он приносит только 15 строк из db, и нет разбивки на страницы.

но если я использую -> get (); , он работает нормально. но страница становится медленной.

Ответы [ 2 ]

2 голосов
/ 03 августа 2020

Во-первых, с шаблоном лезвия нет необходимости использовать теги <?php ?>, и чтобы ответить на ваш вопрос, вы должны отобразить ссылки на страницы: -

Ваш новый файл лезвия: -

<table id="example1" class="table table-bordered table-hover">
    <thead>
        <tr>
            <th>SL</th>
            <th>Date</th>
            <th>Title</th>
        </tr>
    </thead>
    <tbody>
        @foreach ($leads_list as $list_item)
        <tr>
            <td>{{ $loop->index }}</td>
            <td>{{ $list_item->created_at }}</td>
            <td>{{ $list_item->title }}</td> 
        </tr>
        @endforeach
    </tbody>
</table>

{{ $leads_list->links() }}
1 голос
/ 03 августа 2020

Пожалуйста, ознакомьтесь с документацией.

https://laravel.com/docs/7.x/pagination#displaying -pagination-results .

Вам нужно будет добавить ссылки на страницы в ваш файл лезвия. {{$leads_list->links()}}, это создает 1,2,3 et c. ссылки на страницы, чтобы вы могли переключаться между страницами с разбивкой на страницы.

Если вы не используете файлы лезвий, вы можете добавить в представление следующий код:

<?php echo $leads_list->render(); ?>

...