Laravel实现搜索的时候分页并携带参数
时间:2022-07-27
本文章向大家介绍Laravel实现搜索的时候分页并携带参数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
筛选分页每页的条数:
<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'));
}
##效果图:
前端完整代码:
@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教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Flask架站基础篇(三)--Flask生成文件内容和文件夹详解
- Flask架站基础篇(四)--URL
- Flask架站基础篇(六)--mysql-python 安装
- Flask架站基础篇(五)----Jinja2模板
- Flask架站基础篇(七)--SQLAlchemy(1)
- JavaScript 进阶教程(1)--面向对象编程
- Flask架站基础篇(八)--SQLAlchemy(2)
- JavaWeb - EL and JSTL
- Python模拟登陆新版知乎
- 第一天:创建型模式--工厂方法模式
- 第二天:创建型模式--抽象工厂模式
- 第三天:创建型模式--建造者模式
- JavaScript 进阶教程(2)---面向对象实战之贪吃蛇小游戏
- python api链接数据库
- MySQL 的可重复读