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&amp;mysql(六)
Oct 09 PHP
用PHP连接MySQL代码的参数说明
Jun 07 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
PHP执行批量mysql语句的解决方法
May 02 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
将二维数组转为一维数组的2种方法
May 26 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
一个完整的PHP类包含的七种语法说明
Jun 04 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
PHP实现微信对账单处理
Oct 01 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 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
linux iconv方法的使用
2011/10/01 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
php控制文件下载速度的方法
2015/03/24 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
js 调整select 位置的函数
2008/02/21 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
理解Python中的With语句
2015/02/02 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
Python super()函数使用及多重继承
2020/05/06 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
财务会计专业求职信范文
2013/12/31 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
公司会议开幕词
2016/03/03 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js