laravel分页
Posted 与f
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel分页相关的知识,希望对你有一定的参考价值。
后端数据(Eloquent 模型)分页
事先建立好Eloquent 模型和Controller 还有 前台的View。可以参考我之前的文章:Laravel建站03--建立前台文章列表和文章详情
在controller 里获取分页数据:
<?php namespace App\\Http\\Controllers; use Illuminate\\Http\\Request; use Illuminate\\Support\\Facades\\DB; use App\\Article; use Illuminate\\Support\\Facades\\Cache; use Carbon\\Carbon; class ArticleController extends Controller { public function index() { //方式一:可以用DB facade 进行接近原生SQL方式查询,也可以完全用SQL语句,如:$users = DB::select(\'select * from users where active = 1\');。不过我得这样不好 // $articles = DB::table(\'articles\') // ->select(\'id\', \'body\', \'title\') // ->orderBy(\'id\', \'desc\') // ->paginate(5); //分页的关键,这里是可以显示页码的分页,也可以用简单分页,只显示上一页,下一页。数据量大时,简单分页会更快 //方式二:模型直接分页 //$articles = Article::paginate(5); //方式三:模型简单分页 //$articles = Article::simplePaginate(5); //在方式二的基础上增加排序规则 //$articles = Article::orderBy(\'id\', \'desc\')->paginate(5); //在方式三的基础上增加查询的列 $articles = Article::select(\'id\', \'title\')->orderBy(\'id\', \'desc\')->paginate(5); return view(\'welcome\', [\'articles\' => $articles]); } }
前台显示分页结果
- 在Laravel中显示分页html还是很简单的。只用一句话就可以搞定:
{{ $articles->links() }}
- 如果想在前台分页连接中附加参数,可以在controller绑定view中增加参数:(或搜索传参数)
return view(\'welcome\', [\'articles\' => $articles, \'params1\' => \'a\', \'params2\'=>\'b\']);
然后把前台的代码修改为:
{{ $articles->appends([\'p1\' => $params1, \'p2\' => $params2])->links() }}
这样前台分页的地址就从?page=2 变成?p1=a&p2=b&page=2 了。
- 自定义分页HTML
想自定义分页HTML,可以修改Laravel分页视图:vendor/laravel/framework/src/Illuminate/Pagination/resources/views/ 文件夹下的视图文件
参考:http://laravelacademy.org/post/3246.html
以上是关于laravel分页的主要内容,如果未能解决你的问题,请参考以下文章