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 相关文章推荐
我常用的几个类
Oct 09 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
Jul 29 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
基于PHP5魔术常量与魔术方法的详解
Jun 13 PHP
PHP禁止个别IP访问网站
Oct 30 PHP
php对数组排序的简单实例
Dec 25 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
Codeigniter整合Tank Auth权限类库详解
Jun 12 PHP
php实现异步数据调用的方法
Dec 24 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 PHP
用php如何解决大文件分片上传问题
Jul 07 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
PHP概述.
2006/10/09 PHP
实现获取http内容的php函数分享
2014/02/16 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
javascript 混合的构造函数和原型方式,动态原型方式
2009/12/07 Javascript
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
python分割列表(list)的方法示例
2017/05/07 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
python Pexpect 实现输密码 scp 拷贝的方法
2019/01/03 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
python设置环境变量的作用和实例
2019/07/09 Python
python树的同构学习笔记
2019/09/14 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
毕业生求职推荐信
2013/11/04 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
班级寄语大全
2014/04/10 职场文书
农村党员一句话承诺
2014/05/30 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
python读取mnist数据集方法案例详解
2021/09/04 Python