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的ob_start();控制您的浏览器cache!
Feb 14 PHP
PHP重定向的3种方式
Mar 07 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
php动态生成版权所有信息的方法
Mar 24 PHP
php取得字符串首字母的方法
Mar 25 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 PHP
PHP安装BCMath扩展的方法
Feb 13 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数据库的常用代码
2014/08/11 PHP
curl和libcurl的区别简介
2015/07/01 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
jQuery 学习 几种常用方法
2009/06/11 Javascript
Javascript 检测、添加、移除样式(className)函数代码
2009/09/08 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
Python实现CET查分的方法
2015/03/10 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
幼儿园中班教师寄语
2014/04/03 职场文书
班级心理活动总结
2014/07/04 职场文书
入党函调证明材料
2014/12/24 职场文书
公司租车协议书
2015/01/29 职场文书
物业公司管理制度
2015/08/05 职场文书
九不准学习心得体会
2016/01/23 职场文书
责任书格式
2019/04/18 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
2021/09/04 SQL Server
vue使用echarts实现折线图
2022/03/21 Vue.js
Android Rxjava3 使用场景详解
2022/04/07 Java/Android