Как использовать встроенную функцию разбивки на страницы Laravel на веб-сайте
Вы хотите интегрировать в свое приложение встроенную разбивку на страницы Laravel? Пагинация – всегда длительная задача. Если мы делаем это без какой-либо сторонней библиотеки, тогда нам нужно обрабатывать ссылки на страницы, общее количество записей, записей на страницу и т.д. В этой статье мы покажем вам, как использовать разбиение на страницы в Laravel, который уже включен в установку Laravel.
На веб-сайте нам часто требуется пагинация. Чтобы показать большой набор записей, мы используем разбиение на страницы. Используя разбиение на страницы, мы разбиваем большой набор данных на мелкие части. Это снизит нагрузку на наш сервер и, как следствие, сервер будет быстро реагировать.
Как использовать разбиение на страницы в Laravel
Допустим, у нас есть таблица «продукты» в нашей базе данных, и эта таблица содержит большой набор записей. Наша цель – показать по 10 строк из этой таблицы. А для следующих записей мы будем использовать ссылки для разбивки на страницы.
В нашем контроллере мы используем paginate
метод и передаем значение 10 в качестве аргумента.
public function index()
{
$products = DB::table('products')->paginate(10);
return view('products.index', ['products' => $products]);
}
Приведенный выше код будет извлекать 10 строк из таблицы базы данных и передавать эти записи в представление.
Для отображения этих записей в представлении мы пишем код следующим образом.
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
@foreach($products as $p)
<tr>
<td>{{ $p->id }}</td>
<td>{{ $p->name }}</td>
<td>{{ $p->description }}</td>
</tr>
@endforeach
</tbody>
</table>
{{ $products->links() }}
Здесь links
метод возвращает представление разбивки на страницы, основанное на разбивке на страницы таблицы начальной загрузки.
Laravel также позволяет нам использовать постраничные запросы Eloquent вместо построителя запросов.
$products = AppProduct::paginate(10);
Передача дополнительных параметров для разбивки на страницы ссылок
Обычно мы применяем разбиение на страницы с таблицами HTML. Наряду с табличным списком записей мы даем поле поиска для фильтрации записей. Чтобы сохранить фильтры поиска, мы должны передавать строку поиска в ссылках на страницы, как показано ниже.
http: // ВАШ_САЙТ_ДОМЕН / products? s = test & page = 1
Для этого нам нужно передать строку поиска для просмотра с контроллера.
$products = DB::table('products')->paginate(10);
$products->search = 'YOUR_SEARCH_STRING';
return view('products.index', ['products' => $products]);
Затем, чтобы отображать ссылки для разбивки на страницы, мы изменяем наш код следующим образом.
{{ $products->appends(['s' => $products->search])->links() }}
appends
метод добавляет строку запроса к ссылкам пагинации.
Мы надеемся, что вы понимаете, как разбить на страницы Laravel в своем приложении. Если у вас есть вопросы или предложения, оставьте комментарий ниже.
Статьи по Теме
- Как использовать функцию множественных подключений к базе данных Laravel на веб-сайте
- Создайте многоязычный веб-сайт на PHP с помощью Laravel Framework
- Как установить и использовать CKEditor в Laravel