Поиск…


Разбиение страницы в Ларавеле

В других рамках разбиение на страницы - головная боль. Laravel делает это бриз, он может генерировать разбиение на страницы, добавляя несколько строк кода в Controller и View.

Основное использование

Существует много способов разбиения на страницы элементов, но самый простой - использование метода paginate для построителя запросов или запроса Eloquent . Laravel из коробки заботится о настройке предела и смещения на основе текущей страницы, просматриваемой пользователем. По умолчанию текущая страница определяется значением аргумента строки запроса страницы страницы в запросе HTTP. И точно, это значение обнаруживается Laravel автоматически и вставляется в ссылки, созданные с помощью paginator.

Теперь предположим, что мы хотим вызвать метод paginate по запросу. В нашем примере переданный аргумент для paginate - это количество элементов, которые вы хотите отобразить «на странице». В нашем случае, допустим, мы хотим отобразить 10 элементов на странице.

<?php

namespace App\Http\Controllers;

use DB;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    /**
     * Show all of the users for the application.
     *
     * @return Response
     */
    public function index()
    {
        $users = DB::table('users')->paginate(10);

        return view('user.index', ['users' => $users]);
    }
}

Примечание. В настоящее время операции с groupBy по groupBy которые используют оператор groupBy не могут эффективно выполняться Laravel. Если вам нужно использовать groupBy с groupBy на страницы набором результатов, рекомендуется запросить базу данных и создать файл-указатель вручную.

Простая разбивка на страницы

Предположим, вы просто хотите отображать следующие и предыдущие ссылки в вашем представлении с разбивкой по страницам. Laravel предоставляет вам этот параметр, используя метод simplePaginate .

$users = DB::table('users')->simplePaginate(10);

Отображение результатов в представлении

Теперь можно отобразить разбивку на страницы. Фактически, когда вы вызываете paginate или simplePaginate методы по запросу Eloquent, вы получаете экземпляр paginator. Когда вызывается метод Illuminate\Pagination\LengthAwarePaginator , вы получаете экземпляр Illuminate\Pagination\LengthAwarePaginator , а когда вы вызываете метод simplePaginate , вы получаете экземпляр Illuminate\Pagination\Paginator . Эти экземпляры / объекты имеют несколько методов, которые объясняют набор результатов. Кроме того, в дополнение к этим методам помощников, экземпляры paginator являются итераторами и могут быть закодированы как массив.

Получив результаты, вы можете легко отобразить ссылки на страницы с помощью клинка

<div class="container">
    @foreach ($users as $user)
        {{ $user->name }}
    @endforeach
</div>

{{ $users->links() }}

Метод links автоматически отобразит ссылки на другие страницы в наборе результатов. Каждая из этих ссылок будет содержать конкретную строку страницы, т. Е. Переменную строки запроса ?page . HTML, сгенерированный методом ссылок, полностью совместим с базой CSS Bootstrap.

Изменение видов разбиения на страницы

При использовании разбиения на страницы laravel вы можете использовать свои собственные пользовательские представления. Поэтому при вызове метода ссылок в экземпляре paginator передайте имя представления в качестве первого аргумента методу, например:

{{ $paginator->links('view.name') }}

или же

Вы можете настроить виды разбиения на страницы, экспортируя их в каталог resources/views/vendor с помощью поставщика: publish:

php artisan vendor:publish --tag=laravel-pagination

Эта команда поместит представления в каталог resources/views/vendor/pagination . Файл default.blade.php в этом каталоге соответствует представлению с разбивкой по страницам по умолчанию. Отредактируйте этот файл, чтобы изменить HTML-код разбивки на страницы.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow