Laravel 分页自定义
要了解自定义分页,您需要了解以下几点。
- 什么是分页
- 分页类型
- 有哪些方法
- 编写自定义 laravel 分页的步骤
什么是分页?
分页是一个导航栏,可以帮助用户从一个页面移动到另一个页面。自定义分页意味着设置分页导航栏的样式。 Laravel 文档说 Bootstrap CSS 是样式分页的默认 CSS。
在其他框架中,分页可能很痛苦,但 Laravel 让它变得更容易。 app/config/view 中有一个配置选项。 PHP
pagination()方法指定应该使用哪个视图来创建分页链接。
PHP
paginate(5);
return view('students', compact('students'));
}
}
PHP
PHP
paginate(5);
return view('students', compact('students'));
}
}
?>
PHP
HTML
Page Title
Welcome To GFG
Default code has been loaded into the Editor.
@if ($paginator->hasPages())
@endif
HTML
User list
@extends('students.layout')
@section('content')
@if ($message = Session::get('success'))
{{ $message }}
@endif
No
Firstname
Lastname
Age
Action
@foreach ($students as $student)
{{ ++$i }}
{{ $student->firstname }}
{{ $student->lastname }}
{{ $student->age }}
@endforeach
{{ $students->links('vendor.pagination.custom') }}
@endsection
分页类型:分页方式有两种写法
- simplePaginate() 方法
- paginate() 方法
方法之间的区别在于paginate()视图 将显示基于当前页面的“范围”链接,而simplePaginate()视图仅显示Prev和Next按钮。
有哪些方法?
laravel 文档中提供了一些方法来定义 laravel 分页的属性。下面列出了一些重要的方法。
- count():统计当前页面的条目数。
- getCurrentPage():表示当前页码。
- getFirstItem():获取结果中的第一项。
- getOptions():获取分页器选项。
- getUrlRange($start, $end):设置分页 URL 的范围。
- getlastPage():获取可用的最后一页。 (使用 simplePaginate 时,此方法不可用)。
- nextPageUrl():获取下一页的 URL。
- onFirstPage():判断分页器是否在第一页。
- perPage():每页显示的项目数。
- previousPageUrl():获取上一页的 URL。
自定义分页视图:默认情况下,显示分页链接的视图与 Bootstrap CSS 框架兼容。自定义分页视图的最简单方法是使用vendor:publish命令将它们导出到resources/views/vendor目录
php artisan vendor:publish --tag=laravel-pagination
此命令将自动创建文件夹/resources/views/vendor/pagination。
bootstrap-4 刀片。 PHP文件位于相应的默认分页视图中。您可以编辑此文件以修改分页 HTML。
如果您想设计一个不同的分页视图作为默认分页视图,那么您可能会在 AppServiceProvider 中使用分页器默认视图和默认 SimpleView 方法:
PHP
如果您不想使用 Bootstrap CSS,那么您可以创建自己的 custom.blade。 PHP文件。
编写自定义 Laravel 分页的步骤:在本节中,我们将介绍如何添加和自定义分页。要自定义 laravel,您需要执行以下步骤:
- 制作模型
- 制作控制器和视图
- 从数据库表中获取数据
- 分页显示数据
制作模型:要从要创建一个模型的数据库表中获取数据。请记住模型名称与要显示的数据库中的表名称相同。您可以使用以下命令创建模型
php artisan make : model User;
制作Controller和视图:然后在第二步中,需要创建一个Controller来建立模型和视图页面之间的连接。您可以使用以下命令创建控制器
php artisan make : controller StudentController;
PHP
paginate(5);
return view('students', compact('students'));
}
}
?>
从数据库表中获取数据:然后您需要更新web。 PHP在路由目录中添加控制器在路由中
PHP
分页显示数据:首先,我们创建custom.blade。 PHP然后将其扩展到学生视图
HTML
Page Title
Welcome To GFG
Default code has been loaded into the Editor.
@if ($paginator->hasPages())
@endif
然后稍后我们创建一个视图页面以将数据显示为用户列表。是刀片。 PHP文件前。学生刀片。 PHP
HTML
User list
@extends('students.layout')
@section('content')
@if ($message = Session::get('success'))
{{ $message }}
@endif
No
Firstname
Lastname
Age
Action
@foreach ($students as $student)
{{ ++$i }}
{{ $student->firstname }}
{{ $student->lastname }}
{{ $student->age }}
@endforeach
{{ $students->links('vendor.pagination.custom') }}
@endsection
输出: