Linux日志
PHP记事本
JS记事本
数据库
团队资讯

laravel两种方法实现分页

分类:PHP记事本 发布时间:2017-05-30 10:39:44 阅读:作者:郑祥景

使用查询构建器实现分页

简单分页

我们可以在查询构建器上简单调用 simplePaginate 方法,从而实现类似WordPress默认分页的样式(上一页、下一页这种简单的分页链接):

class PostController extends Controller{	/**
	 * 显示文章列表.
	 *
	 * @return Response
	 */
	public function index()
	{		//使用查询构建器进行简单分页,每页显示3条记录
		$posts = DB::table('posts')->simplePaginate(3);		return view('post.index',['posts'=>$posts]);
	}
	...
}

就是这么简单,不需要传入页码,不需要传入总数,只是简单调用 simplePaginate方法并传入每页显示数目,如果你想指定查询的字段,页码参数,完整的 simplePaginate 定义如下:

simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page')

其中 $perPage 表示每页显示数目, $columns 表示查询字段, $pageName 表示页码名称,页码名称默认为 page 。

要查看页面显示效果,还需要定义相应的视图文件。

分页Blade视图

接下来我们创建文章列表页视图文件 resources/views/post/index.blade.php :

<div class="container">
	<ul>
	@foreach ($posts as $post)
		<li>{{ $post->title }}</li>
	@endforeach
	</ul>
</div>
{!! $posts->render() !!}

保存新建的文件之后,去浏览器访问 http://laravel.app:8000/post ,页面显示如下:

点击下一页链接“»”,页面跳转到 http://laravel.app:8000/post/?page=2 并显示如下内容:

当然,我们通常见到的分页样式更多是这样的:

那么,这又如何实现呢?

别担心,Laravel已经为我们准备好了相应的实现方法。

实现带页码的分页

要实现上述带页码的分页样式,只需调用查询构建器上的 paginate 方法即可:

$posts = DB::table('posts')->paginate(3);

再次访问 http://laravel.app:8000/post ,页面显示如下:

显然,分页已经带上页码了,当然,这里我们没有引入Bootstrap,所以样式丑了点。不过学院君会在下月推出的博客项目中让大家彻底告别这种样式,所以暂时忍一忍啦。

同理,我们也可以传递更多参数到 paginate 方法, paginate 完整参数定义如下:

paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)

其中 $perPage 代表每页显示数目, $columns 代表查询字段, $pageName 代表页码名称, $page 代表第几页。


  

   编辑:郑祥景

[随享社区版权所有 未经许可不得转载 ]

返回首页


推荐
Linux日志
PHP记事本
JS记事本
数据库
团队资讯
在线客服随享宝宝
有任何问题,都可以戳我反馈哦!
微信公众号 方便 快速
扫描二维码 关注公众号

版权所有:天妖云/随享社区V5.2 beta Copyright 2015-2019 TIAYO.COM Inc. All rights reserved.