zoukankan      html  css  js  c++  java
  • laravel分页

    后端数据(Eloquent 模型)分页

    事先建立好Eloquent 模型和Controller 还有 前台的View。可以参考我之前的文章:Laravel建站03--建立前台文章列表和文章详情

    在controller 里获取分页数据:

    <?php
    
    namespace AppHttpControllers;
    
    use IlluminateHttpRequest;
    use IlluminateSupportFacadesDB;
    use AppArticle;
    
    use IlluminateSupportFacadesCache;
    use CarbonCarbon;
    
    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

  • 相关阅读:
    MVC之Control和View之间传递数据
    与 BUG 跟踪系统/问题跟踪集成
    与 BUG 跟踪系统/问题跟踪集成
    版本库浏览器
    c#创建快捷方式代码
    项目中用到的数字证书的创建,签名实现
    vs2005 "automation服务器不能创建对象"解决方法.
    项目中用到的数字证书的创建,签名实现
    创建一个输入标识符 也就是一个输入的光标
    利用设备描述符画图
  • 原文地址:https://www.cnblogs.com/fps2tao/p/7928331.html
Copyright © 2011-2022 走看看