laravel框架分页


2.数据分页
在laravel里面要完成分页是很简单的,它的思想之前的框架有些不一样,之前框架使用的是分页类完成分页,laravel是直接调用模型的分页方法,返回对应的数据和分页的字符串。
https://learnku.com/docs/laravel/8.x/pagination/9402

2.1.查询构造器分页
数据分页有多种方法。最简单的是使用 查询构造器 或 Eloquent query 的 paginate 方法。paginate 方法根据用户浏览的当前页码,自动设置恰当的偏移量 offset 和限制数 limit。默认情况下,HTTP 请求中的 page 查询参数值被当作当前页的页码。 Laravel 会自动检测该值,并自动将其插入到分页器生成的链接中。
在下面的例子中,传递给 paginate 方法的唯一参数是你想要在每页显示的记录数。在此例中,我们指定要在每页显示 2 条数据:

2.1.1.详细分页

   public function list()
    {
        $members = DB::table('member')->paginate(2);

        return view('list', ['members' => $members]);
    }

2.1.2.简单分页

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


2.2 Eloquent 分页

$members = App\Models\Member::paginate(2);
$members = Member::where('votes', '>', 100)->paginate(15);
$members = Member::where('votes', '>', 100)->simplePaginate(15);

2.3 显示分页结果

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

{{ $members->links() }}

分页样式只显示上一页和下一页,中间的页码不显示,显示效果会发生样式错乱,是因为

 

 修改源码改成默认配置为 bootstrap

●    修改这个目录下面的文件   vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php 116行 124行

 

 

 

 引入CSS3文件显示漂亮样式

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

2.4 附加参数到分页链接

{{ $users->appends(['sort' => 'votes'])->links() }}

如果你想要把所有的查询参数值添加到分页链接,可以使用 withQueryString 方法:

{{ $users->withQueryString()->links() }}

2.5 获取分页信息

 

posted @ 2022-03-16 15:08  沫栀  阅读(306)  评论(0)    收藏  举报