laravel 5.5 顶部带条件分页查询

一、前言

      这个问题也是老生常谈了。顶部搜索好做,分页也好做,但是带着条件分页就不太好做。也是博主自己看文档不仔细。后面仔细看文档,发现了laravel 5.5 本身就提供了这样一个方法。

文档位置:Laravel 的分页功能

二、条件分页的实现

      博主本来是用post的方式传递条件查询的。但是在laravel自带的分页中,点击分页执行的是get请求,会把分页的页码page直接显示在地址栏。所以用post传递查询条件不太好,因此改为get表单提交顶部条件。

1、获取条件

 $test= $request->input('test','');
 $test1= $request->input('test1','-1');

      这里大家平时接收参数,大多数只是单纯的接收参数。我们这里由于是带的顶部搜索,所以在获取不到搜索值的情况下,应该给一个默认的参数。通过判断来确定到底是简单的展示页面还是带有查询条件的展示页面。

2、拼接sql

$sql = DB::table('test');
    if($test){
      $sql = $sql->where('test', '=', $test);
    }
    if($test1>-1){
      $sql = $sql->where('test1', '=', $test1);
    }
    $arr = $sql->orderBy('created_at', 'desc')->paginate(10);

这部分就是判断获取的参数,在没有搜索条件的时候是不会影响正常查询的。

3、附加参数到分页链接中(视图传参)

//你可以使用 appends 方法将查询参数附加到分页链接中。
//例如,要将 sort=votes 附加到每个分页链接,可以这样调用 appends 方法:
{{ $users->appends(['sort' => 'votes'])->links() }}

这部分是laravel官方给出的方法,我们可以在展示的时候,把参数传递进去。

4、附加参数到分页链接中(控制器传参)

//这部分是在控制器中,把参数添加进去。添加完成之后就可以了
  $arr->appends($request->input());

      这里的$request->inpuit()就是我们获取到的所有参数的合集。通过控制器传递参数,视图页只需要正常显示分页即可。{!! $arr->render()!!}

以上就是laravel5.5中带有条件的顶部搜索。文档是个好东西。

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值