Разбиение на страницы в Laravel не требует усилий, потому что Laravel предоставляет метод paginate () . Пагинатор Laravel готов к работе с конструктором запросов и Eloquent ORM и включает результаты из базы данных. HTML, сгенерированный средством разбиения на страницы, совместим с платформой Bootstrap CSS. Когда у нас есть тысячи строк в базе данных, тогда потребуется разбиение на страницы.
- Как использовать разбиение на страницы в Laravel
- Шаг 1 : Установить Laravel 8
- Шаг 2. Создание поддельных данных в базе данных.
- Шаг 3. Отображение данных во внешнем интерфейсе.
- Шаг 4. Пагинация красноречивых результатов
- Преобразование результатов разбивки на страницы в JSON
- Заключение
- Рекомендуемые сообщения
Как использовать разбиение на страницы в Laravel
Там Есть несколько способов разбивки на страницы элементов базы данных. Короткий и удобный способ — использовать метод Laravel paginate () в построителе запросов или запрос Eloquent.
Метод paginate () автоматически устанавливает правильный предел и смещение в зависимости от текущей страницы, которую просматривает пользователь.
По умолчанию текущая страница определяется значением аргумента строки запроса страницы в HTTP-запросе. Это значение автоматически обнаруживается Laravel и автоматически вставляется в ссылки, генерируемые пагинатором.
Если Laravel предоставляет что-то из царапина, тогда, пожалуйста, не создавайте свой подход. Люди часто создают свой код для разбивки на страницы, что неверно. Используйте вспомогательный метод Laravel, это чистый способ.
Теперь давайте посмотрим, как разбиение на страницы в учебнике Laravel в действии.
Сначала мы устанавливаем Laravel 8 , а затем подделываем некоторые данные с помощью библиотеки faker.
Шаг 1 : Установить Laravel 8
Введите следующую команду.
composer create-project laravel/laravel lapagination --prefer-dist
Теперь настройте базу данных в файле .env .
Хорошо, затем перейдите в терминал и нажмите следующую команду.
php artisan migrate
Он создаст две таблицы в базе данных. Теперь мы используем библиотеку faker для заполнения данных в базе данных.
Шаг 2. Создание поддельных данных в базе данных.
Если вам интересно, как его установить, хорошие новости — он уже установлен для вас в Laravel !
Взгляните на стандартный composer.json Laravel.
"require-dev": {"filp/whoops": "~ 2.0", "nunomaduro/collision": "~ 1.1", " fzaninotto/faker ":" ~ 1.4 "," mockery/mockery ":" ~ 1.0 "," phpunit/phpunit ":" ~ 7.0 "," symfony/thanks ":" ^ 1.0 "},
Теперь нам нужно написать 6-7 строк кода для генерации поддельных данных пользователей. Перейдите в базу данных >> семена >> DatabaseSeeder и добавьте в нее следующие строки кода.
//DatabaseSeeder.php/** * Запустите базу данных семена. * * @return void */публичная функция run () {$ faker = Faker :: create (); foreach (диапазон (1,1000) как $ index) {DB :: table ('users') -> insert (['name' => $ faker-> name, 'email' => $ faker-> email, ' пароль '=> bcrypt (' секрет '),]); }}
Сначала мы создали объект-фейкер, а затем перебираем разные столбцы таблицы пользователей и назначаем по одному свойству за раз.
Каждый раз, когда цикл повторяется, новые случайные данные генерируются и прикрепляются к определенным столбцам.
Вот как мы можем создавать разные поддельные данные для каждого пользователя. Теперь введите следующую команду, чтобы создать поддельные данные.
php artisan db: seed
Теперь вы можете видеть в базе данных и таблице пользователей, их много добавленных строк.
Команда db: seed запускает этот файл с именем
Шаг 3. Отображение данных во внешнем интерфейсе.
Теперь перейдите в файл HomeController.php и создайте его. функция под названием
//HomeController.phpuse App User; общедоступная функция getUsers () {$ users = User :: all (); return view ('index', compact ('users'));}
Определите маршрут внутри файла web.php .
//web.phpRoute :: get ('/users', 'HomeController @ getUsers') -> name ('users');
Наконец, создайте один файл внутри resources >> views , папка с именем
Данные пользователей
@foreach ($ users как $ user) ID Имя Электронная почта @endforeach {{$ user-> id}} {{$ user-> name}} {{$ user-> email}} Прямо сейчас он отображает все строки, и это то, что мы хотим. Мы хотим разбить данные на страницы. Итак, давайте сделаем это.
Шаг 4. Пагинация красноречивых результатов
Нам нужно использовать разбиение на страницы () , предоставляемая моделью Eloquent. Поэтому замените метод all () на paginate () и передайте количество строк в качестве параметра.
//HomeController. php $ users = User :: paginate (15);Теперь нам нужно отобразить веб-компонент pagination в интерфейсе пользователя. Как мы уже говорили ранее, объект разбиения на страницы Laravel хорошо работает с Bootstrap CSS Framework .
Итак, нам нужно добавить следующий код в table внутри файла index.blade.php .
{{$ users-> links ()}}Итак, весь наш файл index.blade.php выглядит так.
Данные пользователей {{$ users-> links ()}}
@foreach ($ users как $ user) ID Имя Электронная почта @endforeach {{$ user-> id}} {{$ user-> name}} {{$ user-> email}}
Преобразование результатов разбивки на страницы в JSON
Классы результатов разбиения на страницы Laravel реализуют
Illuminate Contracts Support Jsonable
Контракт интерфейса и предоставление метода, поэтому преобразование результатов разбивки на страницы в JSON несложно.Итак, напишите следующий код внутри файла web.php .
Route :: get ('users', function ( ) {return App User :: paginate (4);});Таким образом, он будет возвращен как данные в формате JSON.
Таким образом, вы можете использовать этот объект и его метаданные во внешнем интерфейсе для создания разбивки на страницы в соответствии с вашими требованиями.
Заключение
В других фреймворках разбивка на страницы может быть очень болезненной. Laravel делает это проще простого. Чтобы использовать его, сначала вы должны внести изменения в свой контроллер и вызвать метод paginate () для извлечения данных из базы данных, а затем внутри представления использовать метод render () для получения данных с разбивкой на страницы.
Laravel решает почти всю сложную логику за нас и экономит время.
Рекомендуемые сообщения
Метод фильтрации коллекций Laravel
Коллекция Laravel Eloquent
Как создать многоязычный веб-сайт с помощью Laravel
Интеграция с платежным шлюзом Laravel Stripe
Laravel Cashier Braintree Payment Gateway
Проверка Laravel
Как экспортировать данные в Excel и CSV
Laravel PDF из представления
Поиск коллекций Laravel
Проверка электронной почты Laravel