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分页的主要内容,如果未能解决你的问题,请参考以下文章

laravel怎么改造分页类,给他加上首页和尾页

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

laravel的分页系统,怎么获取他的total

Laravel分页

Laravel分页

Laravel 5 缓存/分页问题