laravel分页查询

今天的笔记

1.给后台加代码,让前端页面按顺序(从大到小或从小到大)排序

sortBy(‘id’)->values() 是排序的方法从小到大 sortBy(‘放要按那个字段排列的字段名’);
sortByDesc(‘id’)->values() 是排序的方法从大到小 sortBy(‘放要按那个字段排列的字段名’);

$res= Post::all()->sortBy('id')->values();

2.分页查询

2.1 skip 与 take的用法

规定查询的条数
skip(0-9)->take(0-9)->get(); skip是跳过前几条,take是查询几条信息

$res=Post::skip(5)->take(2)->get();
//意思就是查询表中第5条往后2条数据(不包括第5条)
2.2分页逻辑

第一页显示5条是数据的话那么第二页就应该从第6条数据开始显示,第三页就应该从第11条开始显示,这个有一个规律:就是页码-1固定显示的数据条数。 skip的参数值()=页码-1固定显示的数

//定义一个参数
$page=页码  //不能是固定的应该是变化的
$pageSize=每行显示的行数  //可以是固定的
skip的参数值=$page-1-$pageSize
take的参数=$pageSize

获取总页数
如果能除进的话执行
$count / t h i s − > p a g e S i z e 如 果 不 能 除 进 执 行 f l o o r ( this->pageSize 如果不能除进执行 floor( this>pageSizefloor(count / $this->pageSize)+1

 $this->pageCount = $count % $this->pageSize == 0 ?$count / $this->pageSize : floor($count / $this->pageSize)+1;

下一步渲染页码
用动态生成的按钮把上面的注释了,然后把pre追加到他的父元素上

    function loadPage(pageCount){
      var pre=`<li>
              <a href="#" aria-label="Previous">
                <span aria-hidden="true">&laquo;</span>
              </a>
            </li>`;
 $(".pagination").append(pre);

下一步
为动态创建的分页超链接添加单机事件

$('.pagination').on('click','li',function(event){
      //阻止默认行为
      event.preventDefault();
    })

按照逻辑写这是前端的代码

$('.pagination').on('click','li',function(event){
      //阻止默认行为
      event.preventDefault();
      //改变page的值
      page=$(this).data('page');
      loadData();
    })

后端代码

  private $pageSize=5;
    private $pageCount=0;
    //获取所有文章信息
    public function index(){
        //排序
        // sortBy('id')->values() 是排序的方法从小向大排  sortBy('放要按那个字段查询的字段名')
        // sortByDesc('id')->values() 是排序的方法从小向大排  sortBy('放要按那个字段查询的字段名')
       // $res=Post::all()->sortByDesc('id')->values(); 倒序排列
       //显示全部数据$res=Post::all();
        // $res=Post::all()->sortBy('id')->values(); 
        //规定查询的条数
        //skip(0-9)->take(0-9)->get(); skip是跳过前几条 take是查询几条


        // 实现分页效果
        // $page=页码
        // $pageSize=每行显示的行数
        // $skip参数值=($page-1)*$pageSize
        // $take参数值=$pageSize
        $page=request('page');
        $start=($page-1)*$this->pageSize;
        $res=Post::skip($start)->take($this->pageSize)->get();   
        //获取总页数
        $this->pageCount();
        return response()->json([
            'data'=>$res,
            'pageCount'=>$this->pageCount
        ]);
       }
       //获取总页数
       public function PageCount(){
           $count=Post::all()->count(); 
           $this->pageCount = $count % $this->pageSize == 0 ?$count / $this->pageSize : floor($count / $this->pageSize)+1;
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值