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 相关文章推荐
php下实现折线图效果的代码
Apr 28 PHP
PHP 错误之引号中使用变量
May 04 PHP
php 3行代码的分页算法(求起始页和结束页)
Oct 21 PHP
解析php中curl_multi的应用
Jul 17 PHP
解析php开发中的中文编码问题
Aug 08 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
PHP写日志的实现方法
Nov 05 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
php array_pop 删除数组最后一个元素实例
Nov 02 PHP
php调用云片网接口发送短信的实现方法
Oct 25 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 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使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
PDO::exec讲解
2019/01/28 PHP
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
python实现绘制树枝简单示例
2014/07/24 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
对Python中plt的画图函数详解
2018/11/07 Python
python绘制多个子图的实例
2019/07/07 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
Python 日期与时间转换的方法
2020/08/01 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
室内设计专业学生的自我评价分享
2013/11/27 职场文书
质检员岗位职责
2013/12/17 职场文书
迟到检讨书300字
2014/02/14 职场文书
施工安全汇报材料
2014/08/17 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
《将心比心》教学反思
2016/02/23 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript