首页 技术 正文
技术 2022年11月15日
0 收藏 697 点赞 2,187 浏览 4445 个字

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

路由

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

控制器

<?phpnamespace 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 结合进行分页

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,556
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898