Laravel实现搜索的时候分页并携带参数


Posted in PHP onOctober 15, 2019

筛选分页每页的条数:

<select class="form-control" id="perPage" name="perPage">
 @foreach ( [10,20,30,50] as $e)
  <option value="{{$e}}" {{ $e==request('perPage') ? 'selected' : '' }} >{{$e}}</option>
 @endforeach
</select>

路由:

Route::get('customer/index/{customer_type?}', 'CustomerController@index');

后端接口:

public function index($customer_type = null) {
  $search = request('search');
  $perPage = request('perPage') ? request('perPage') : 10;
  $customer_type = $customer_type ? $customer_type : request('customer_type');
  $data = Customer::select(['id', 'email', 'user_name', 'nick_name', 'phone', 'create_time'])
   ->where('customer_type', '=', $customer_type)
   ->where(function ($query) use ($search) {
    if ($search) {
     $query->where('user_name', 'like', '%' . $search . '%')
      ->orWhere('nick_name', 'like', '%' . $search . '%')
      ->orWhere('phone', 'like', '%' . $search . '%')
      ->orWhere('email', 'like', '%' . $search . '%');
    }
   })
   ->orderBy('create_time', 'desc')
   ->paginate($perPage);
  //追加额外参数,例如搜索条件
  $appendData = $data->appends(array(
   'search' => $search,
   'customer_type' => $customer_type,
   'perPage' => $perPage,
  ));
  return view('admin/customerList', compact('data'));
 }

##效果图:

Laravel实现搜索的时候分页并携带参数

Laravel实现搜索的时候分页并携带参数

前端完整代码:

@extends('admin.master')
@section('content')
<div class="wrapper wrapper-content animated fadeInRight">
 <div class="row">
  <div class="col-sm-12">
   <div class="ibox float-e-margins">
    <form class="form-inline" method="get" action="{{ url('/admin/customer/index',[request()->route('customer_type')])}}">
     <div class="form-group" style="margin-left: 20px">
     <label for="perPage">每页显示数:</label>
     <select class="form-control" id="perPage" name="perPage">
      @foreach ( [10,20,30,50] as $e)
      <option value="{{$e}}" {{ $e==request('perPage') ? 'selected' : '' }} >{{$e}}</option>
      @endforeach
     </select>
    </div>
    <div class="form-group" style="margin-left: 20px">
     <label for="search">模糊搜索:</label>
     <input type="text" name="search" style="width: 400px" class="form-control" id="search" placeholder="请输入机构名或者邮箱或者电话" value="{{request('search')}}">
    </div>
    <button type="submit" class="btn btn-primary" style="margin-left: 20px">开始搜索</button>
   </form>
   {{-- 表格内容 --}}
   <div class="ibox-content">
    <table class="table table-hover table-bordered table-condensed">
     <thead>
      <tr class="success">
       <th class="text-center">用户ID</th>
       <th class="text-center">用户电话</th>
       <th class="text-center">用户邮箱</th>
       <th class="text-center">用户名</th>
       <th class="text-center">用户昵称</th>
       <th class="text-center">注册时间</th>
       <th class="text-center">操作</th>
      </tr>
     </thead>
     @if ($data->total()>0)

     <tbody>
      @foreach ($data as $element)
      {{-- {{dd($element)}} --}}
      <tr class="gradeU {{ ($element['status']==4)?'bg-danger':'' }}">
       <td>{{$element->id}}</td>
       <td class="center">{{$element->phone}}</td>
       <td>{{$element->email}}</td>
       <td>{{$element->user_name}}</td>
       <td>{{$element->nick_name}}</td>
       <td>{{$element->create_time}}</td>
       <td>
        <a class="btn btn-info" href="{{ url('admin/customer/getInfo',[$element->id] )}}" rel="external nofollow" >详细</a>
        <a class="btn btn-success" href="{{ url('admin/customer/readCustomer',[$element->id] )}}" rel="external nofollow" >修改</a>
        <a class="btn btn-danger" href="{{ url('admin/customer/softDeleteCustomer',[$element->id] )}}" rel="external nofollow" >删除</a>
       </td>
      </tr>
      @endforeach
     </tbody>
    </table>
    <div class="text-center">{!! $data->render() !!}</div>
    @else
    <tbody>
     <tr ><td colspan="7"><div class="text-center"><h3>没有查到相关数据!</h3></div></td></tr>
    </tbody>
   </table>
   @endif
  </div>
 </div>
</div>
</div>
</div>
@endsection

带筛选的:

<form class="form-inline" method="get" action="{{ url('dataInfo/channel_form_data',request('id'))}}">
 <div class="form-group" style="margin-left: 20px">
  <label for="search">状态筛选:</label>
  <select name="user_status" class="form-control">
   <option>所有状态</option>
   @foreach ($user_status as $key=>$element)
   <option value="{{$key}}" {{request('user_status')==$key?'selected':''}}>{{$element}}</option>
   @endforeach
  </select>
  <label for="search">模糊搜索:</label>
  <input type="text" name="search" style="width: 400px" class="form-control" id="search" placeholder="用户名或者邮箱" value="{{request('search')}}"> 
 </div>
 <button type="submit" class="btn btn-primary" style="margin-left: 20px">开始搜索</button>
 <a href="{{url('dataInfo/create_channel_user_data',request('id'))}}" rel="external nofollow" class="btn btn-primary" style="float:right;">新增渠道用户</a>
</form>

以上这篇Laravel实现搜索的时候分页并携带参数就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
第七节 类的静态成员 [7]
Oct 09 PHP
wordpress之wp-settings.php
Aug 17 PHP
用PHP读取RSS feed的代码
Aug 01 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Mar 03 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
php中inlcude()性能对比详解
Sep 16 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 #PHP
Yii框架的redis命令使用方法简单示例
Oct 15 #PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
Oct 15 #PHP
解决Laravel5.5下的toArray问题
Oct 15 #PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 #PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 #PHP
laravel 实现划分admin和home 模块分组
Oct 15 #PHP
You might like
zend api扩展的php对象的autoload工具
2011/04/18 PHP
使用Sphinx对索引进行搜索
2013/06/25 PHP
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
js类式继承的具体实现方法
2013/12/31 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
chosen实现省市区三级联动
2018/08/16 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
深入学习python的yield和generator
2016/03/10 Python
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
基于python实现删除指定文件类型
2020/07/21 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
初中校园广播稿
2014/02/02 职场文书
电焊工岗位职责
2014/03/06 职场文书
开门红主持词
2014/04/02 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
融资合作协议书范本
2014/10/17 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
工作会议通知
2015/04/15 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
解析CSS 提取图片主题色功能(小技巧)
2021/05/12 HTML / CSS
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android