demo地址:http://lara.ytlwin.top/orm

路由

Route::match(array('get','post'),'/orm','StuController@orm');

控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\User; //user表的模型
use App\Phone; //phone表的模型 class StuController extends Controller
{
/*
*@brief 搜索 分页
*/
private $current_page; //私有属性 当前页
private $page_size = 5; //私有属性 每页条数 public function __construct(Request $request) {
$this->current_page = $request->input('current_page', 1);
}
public function orm(Request $request)
{
$search_text = $request->input('search_text','');
$pay_type = intval($request->input('pay_type',6));
if($search_text == '')
{
$count = User::join('phone','phone.user_id','=','user.user_id','left')->count();
$page_count = ceil($count/$this->page_size);
// dd($page_count);
$data = User::join('phone','phone.user_id','=','user.user_id','left')->get();
}else{
// 关联
$count = User::join('phone','phone.user_id','=','user.user_id','left')->with('phone')->where('username','like','%'.$search_text.'%')->count();
$page_count = ceil($count/$this->page_size);
$data = User::join('phone','phone.user_id','=','user.user_id','left')->with('phone')->where('username','like','%'.$search_text.'%')->get();
} if($pay_type !== 6 )
{
$data = collect($data) -> where('pay_type',$pay_type); //对已有数据进行处理支付类型筛选
} $count = $data->count(); //多少数据
$page_count = ceil($count/$this->page_size); //多少页 //collect和slice切片选择页数内容
$data = collect($data)->slice(($this->current_page -1)*$this->page_size,$this->page_size); return view('phone',compact('data','search_text','pay_type'))
->with('current_page', $this->current_page)
->with('page_count', $page_count);
} }

视图层

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>电话联系人</title>
<script type="text/javascript" src="{{asset('/jquery.min.js')}}"></script>
<script type="text/javascript" src="{{asset('/laypage/laypage.js')}}"></script>
<script type="text/javascript" src="{{asset('/layer/layer.js')}}"></script> </head>
<body>
<input type="text" name="search_text" id="search_text" placeholder="请输入姓名搜索" @if($search_text != '') value="{{$search_text}} @endif"><button name="search_btn" id="search_btn" type="submit">搜索</button>
<span>
<select name="pay_type" id="pay_type" onchange="pay()">
<option value="6" @if($pay_type==6)selected="selected" @endif>全部</option>
<option value="0" @if($pay_type==0)selected="selected" @endif>在线支付</option>
<option value="1" @if($pay_type==1)selected="selected" @endif>快递支付</option>
</select>
</span>
<div style="height:15px;"></div>
<table>
<thead>
<tr>
<th width="40">选择</th>
<th width="40">序号</th>
<th width="40">姓名</th>
<th width="60">手机</th>
<th width="80">支付方式</th>
<th width="80">发货状态</th>
</tr>
</thead> @foreach($data as $key=>$d)
<tbody>
<tr>
<th width="40"><input type="checkbox" name="like[]"></th>
<th width="40">{{$key+1}}</th>
<th width="40">{{$d->username}}</th>
<th width="60">{{$d->phone}}</th>
<th width="120">
@if($d->pay_type==0)
在线支付
@endif
@if($d->pay_type==1)
快递到付
@endif
</th>
<th width="60">
@if($d->is_send==0)
未发
@endif
@if($d->is_send==1)
已发
@endif
</th>
</tr>
</tbody>
@endforeach </table>
<div class="row cl" style="margin-top: 20px;float:left;" >
<label class="form-label col-1 text-l" id="record">共 {{$page_count}} 页</label>
<div class="formControls col-11 text-r" id="page" style="float:left;">
</div>
</div> <script type="text/javascript">
// alert($);
var search_btn = $('#search_btn');
var search_text = $('#search_text'); var pay_type = ''; $(function(){
if (parseInt("{{$page_count}}") > 0) {
pay_type = $('#pay_type option:selected').val();
laypage({
cont: 'page',
pages: '{{$page_count}}', //可以叫服务端把总页数放在某一个隐藏域,再获取。假设我们获取到的是18
curr: function() { //通过url获取当前页,也可以同上(pages)方式获取
var page = "{{$current_page}}";
return page;
}(),
jump: function(e, first) { //触发分页后的回调
if (!first) { //一定要加此判断,否则初始时会无限刷新
location.href = GetUrlRelativePath() + '?search_text=' + search_text.val().trim() + '&pay_type=' + pay_type + '&current_page=' + e.curr;
}
}
});
}
}); search_btn.click(function(){
pay_type = $('#pay_type option:selected').val();
location.href = GetUrlRelativePath() + '?search_text=' + search_text.val().trim()+ '&pay_type=' + pay_type; //重定向到地址 带参数进行查询
});
function pay()
{
pay_type = $('#pay_type option:selected').val();
location.href = GetUrlRelativePath() + '?search_text=' + search_text.val().trim() + '&pay_type=' + pay_type;
} console.log(GetUrlRelativePath());
function GetUrlRelativePath()
{
var url = document.location.toString(); //得出当前地址
var arrUrl = url.split("//"); //以//为标识 分割为两个数组 [http:,haha.com/orm] var start = arrUrl[1].indexOf("/"); // 下标为1 的即为去除http头的 域名部分 indexOf('') 某个字符首次出现的位置 从0开始计数 / 在第8
var relUrl = arrUrl[1].substring(start); //substring(n) 去除0-(n-1) 的字符串 if(relUrl.indexOf("?") != -1)
{
relUrl = relUrl.split("?")[0]; //去除参数
}
return relUrl;
} //得出地址 </script> </body>
</html>

  效果图

Laravel5.1 与 Laypage 结合进行分页的更多相关文章

  1. TP3.23 与Laypage 结合进行分页

    demo地址:http://tp.ytlwin.top 控制器 <?php namespace Home\Controller; use Think\Controller; class Inde ...

  2. laypage分页控件使用方法

    laypage是一款非常简单易用的分页控件,由于最近项目中使用到了,简单记录一下使用方法 1.引入laypage所需的js和css文件 <link href="js/laypage/1 ...

  3. Flask学习之旅--分页功能:分别使用 flask--pagination 和分页插件 layPage

    一.前言 现在开发一个网站,分页是一个很常见的功能了,尤其是当数据达到一定量的时候,如果都显示在页面上,会造成页面过长而影响用户体验,除此之外,还可能出现加载过慢等问题.因此,分页就很有必要了. 分页 ...

  4. 基于layPage分页插件浅析两种分页方式

    最近在开发过程中经常用到分页,今天挤出些时间来捋一捋自己的经验 在web开发中,一般显示数据列表页时,我们会用到分页控件来显示数据.采用分页一般基于两种不同的需求,一种是数据量不算很大,但是在页面展示 ...

  5. laypage 物理分页与逻辑分页实例

    前言 以下介绍摘自 layui官网laypage layPage 致力于提供极致的分页逻辑,既可轻松胜任异步分页,也可作为页面刷新式分页.自 layui 2.0 开始,无论是从核心代码还是API设计, ...

  6. layui分页

    毕业已经两年,期间经历了很多.一个人欢笑与哭泣,在墙角.在路边.在床上.每天搭乘首班车来到公司,每天无数次反省自己,每天每天再问自己为什么活着. 一.下载并引用css和js 地址:点我 <lin ...

  7. layui分页的使用心得

    // 执行页面加载的函数 loadData(1) // 每页条数 var limit = 5; // 渲染页面 function loadData(curr){ $.ajax({ type:" ...

  8. Layui的一点小理解(上)

    首先声明这是个人的一点理解,如有不对之处请指正,以下的例子有在官网上看到的,有的是自己写的.还是老规矩最后会附上官网的,如有不明白之处,请查看文档或留言. 既然说Layui,当然要简单的介绍以下什么是 ...

  9. layui 的基本使用介绍

    全局配置 layui.config({ dir: '/res/layui/' //layui.js 所在路径(注意,如果是script单独引入layui.js,无需设定该参数.),一般情况下可以无视 ...

随机推荐

  1. scala快速一览

    println("hello world"); val x = +; println(x); //val 不允许再次赋值 //x = 3; //变量var var xx = x; ...

  2. 2690036 - SAP HANA 2.0 SPS 03 Database Revision 034

    Symptom This is the SAP Release Note for SAP HANA 2.0 Database Revision 034 (2.00.034.00) of the SAP ...

  3. system.data oracleClient 需要Oracle客户端8.1.7或high

  4. linux socket使用情况 ss -s ss -t -a | cat /proc/net/socketstat

    Linux系统中,查看SOCKET使用情况可以使用ss命令. 1.命令格式:ss [参数]ss [参数] [过滤]2.命令功能:ss(Socket Statistics的缩写)命令可以用来获取 soc ...

  5. 启动tomcat时cmd窗口一闪而过

    在tomcat的安装目录下 双击startup.bat启动时cmd窗口一闪而过 1.在系统中查看配置JDK的环境变量是否正确 2.进入tomcat的安装目录 在启动tomcat时流程是:startup ...

  6. Hive 优化汇总

    参考: http://www.cnblogs.com/yshb/p/3147710.html http://www.cnblogs.com/sandbank/p/6408762.html 一   jo ...

  7. iOS基础知识之属性及属性关键字

    iOS属性及属性关键字 一.属性功能:1.给现有的成员变量生成一对setter/getter方法.2.如果没有声明成员变量,自动声明一个_属性名的私有变量(默认的成员变量是受保护的). 二.属性关键字 ...

  8. spark sql运行原理

    Spark sql 对SQL语句的处理,先将SQL语句进行解析(parse)形成一个tree,然后使用Rule对Tree进行绑定,优化等处理过程,通过模式匹配对不同类型的节点采用不同操作.查询优化器是 ...

  9. MVC基于角色权限控制--管理角色

    管理角色分为 添加角色.删除角色.修改角色.给角色分配权限(修改角色权限) 新建RoleInfoController继承BaseController namespace CZBK.ItcastOA.W ...

  10. Hbase数据读写流程

    From: https://blog.csdn.net/wuxintdrh/article/details/69056188 写操作: Client写入,存入Memstore,Memstore满则Fl ...