数据分页
在laravel里面要完成分页是很简单的,它的思想之前的框架有些不一样,之前框架使用的是分页类完成分页,laravel是直接调用模型的分页方法,返回对应的数据和分页的字符串。
官方手册:链接
2.1.查询构造器分页
数据分页有多种方法。最简单的是使用 查询构造器 或 Eloquent query 的 paginate 方法。paginate 方法根据用户浏览的当前页码,自动设置恰当的偏移量 offset 和限制数 limit。默认情况下,HTTP 请求中的 page 查询参数值被当作当前页的页码。 Laravel 会自动检测该值,并自动将其插入到分页器生成的链接中。
在下面的例子中,传递给paginate方法的唯一参 数是你想要在每页显示的记录数。
在此例中,我们指定要在每页显示2条数据:
1.详细分页
控制器:
//每页展示两条数据(详细分页-带页码)$nows = DB::table('member')->paginate(2);$data = compact('nows');return view('fy',$data);//如果你希望展示简单分页(没有页码的分页)//可以调用simplePaginate( )方法$users = DB::table('members')->simplePaginate(2);
分页样式只显示上一项和下- -页,中间的页码不显示,显示效果会发生样式错乱,是因为
修改配置文件:系统默认的样式比较乱
修改源码改成默认配置为bootstrap
. vendor/laravel/framework/srclluminate/Pagination/AbstractPaginator.
php 116行124行
视图 (展示分页结果):
//引入bootstrap css样式分页样式
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
@foreach($nows as $v)
{{$v->username}}
@endforeach
{{$nows->links()}}
2.搜索分页
如果你想要使分页链接携带参数,则可以使用appends( )方法
//如下实例代码可以使分页链接携带参数【属性->sort,值->votes】
{{ $users->appends(['sort' => 'votes'])->links() }}
如果你想要把所有的查询参数值添加到分页链接,可以使用withQueryString方法:
//如下实例可以将上一页查询的所有结果带给下一页
//当然,你也可以为withQueryString方法指定参数,带哪些数据
{{ $users->withQueryString()->links() }}
搜索分页
实例模板文件:
<form action="">
//value 用来保存搜索的数据写入搜索框中
<input type="text" name="search" value="{{request()->get('search')}}">
<input type="submit" value="搜索">
@foreach($nows as $v)
<br>
{{$v->username}}
<br>
{{$v->password}}
@endforeach
//appends 参数 用来在翻页时携带传参
{{$nows->appends(['search'=>request()->get('search')])->links()}}
</form>
控制器:
//注意where都用where orWhere都用orWhere 不能两者都用
$cont = $request->input('search');
$nows = DB::table('member')
->orWhere('username','like',"%$cont%")
->orWhere('password','like',"%$cont%")->
paginate(2);
$data = compact('nows');
return view('fy',$data);

