Laravel 手动创建分页器 LengthAwarePaginator
2017-03-10 12:45
3087 查看
1.分页器实例调取:
Illuminate\Pagination\LengthAwarePaginator
use Illuminate\Pagination\Paginator;
use Illuminate\Pagination\LengthAwarePaginator;
2.生成分页数据
$total = $retData->total; //记录总条数
$perPage = PAYMENT_PER_PAGE_NUMBER; //每页的记录数 ( 常量 )
$current_page = $this->params['pageNum']; //
当前页
$path = Paginator::resolveCurrentPath(); // 获取当前的链接"http://localhost/admin/account"
$infoList['retData'] = $retData;
$infoList['paginator'] = new LengthAwarePaginator($retData, $total,$perPage, $current_page, [
'path' => $path ,
//设定个要分页的url地址。也可以手动通过 $paginator ->setPath(‘路径’) 设置
'pageName' => 'page',
//链接的参数名 http://localhost/admin/manage?page=2
]);
//分页 (方法里$retData 是要分页的数据,但这里只是暂存,LengthAwarePaginator 不处理这个数据)
3,页面显示
在balde模板页面中输出:
[ ========= 注意:仅有一页数据时,分页按钮是不显示的===========]
{!! $paginator->render() !!}
分页样式 : Bootstrap class="pagination"
=============================path带多个参数 ==========================
4.path带多个参数
// ************************************
// 分页逻辑
$perPage = 20;
if ($request->has('page')) {
$current_page = $request->input('page');
$current_page = $current_page <= 0 ? 1 :$current_page;
} else {
$current_page = 1;
}
//$item = array_slice($result['accountList'], ($current_page-1)*$perPage, $perPage); //按分页取数据
$total = $result['accountdata']['total'];
$path_arr = array();
$com_name = $request->input('com_name'); // 检索条件_公司名称
$com_name = empty($com_name) ? null : trim($com_name);
if (!empty($com_name)) $path_arr['com_name'] = trim($com_name);
$select_group = $request->input('select_group'); // 检索条件
$select_group = empty($select_group) ? null : trim($select_group);
if (!empty($select_group)) $path_arr['select_group'] = trim($select_group);
$path = Paginator::resolveCurrentPath(); // 获取当前的链接"http://localhost/admin/account"
if (count($path_arr) > 0) $path.= '?'.http_build_query($path_arr);// 拼接参数
$paginator =new LengthAwarePaginator($result['accountList'], $total, $perPage, $current_page, [
'path' => $path, //设定个要分页的url地址。也可以手动通过 $paginator ->setPath(‘路径’) 设置
'pageName' => 'page',
]);
// ************************************
return view('admin.account.search')->with('retData',$result)->with('paginator',$paginator);
5.注:
http_build_query方法:
生成 url-encoded 之后的请求字符串描述string http_build_query (
array formdata [, string numeric_prefix] )
实例:
<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');
echo http_build_query($data);
/* 输出:
0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
*/
echo http_build_query($data, 'myvar_');
/* 输出:
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
*/
?>
Illuminate\Pagination\LengthAwarePaginator
use Illuminate\Pagination\Paginator;
use Illuminate\Pagination\LengthAwarePaginator;
2.生成分页数据
$total = $retData->total; //记录总条数
$perPage = PAYMENT_PER_PAGE_NUMBER; //每页的记录数 ( 常量 )
$current_page = $this->params['pageNum']; //
当前页
$path = Paginator::resolveCurrentPath(); // 获取当前的链接"http://localhost/admin/account"
$infoList['retData'] = $retData;
$infoList['paginator'] = new LengthAwarePaginator($retData, $total,$perPage, $current_page, [
'path' => $path ,
//设定个要分页的url地址。也可以手动通过 $paginator ->setPath(‘路径’) 设置
'pageName' => 'page',
//链接的参数名 http://localhost/admin/manage?page=2
]);
//分页 (方法里$retData 是要分页的数据,但这里只是暂存,LengthAwarePaginator 不处理这个数据)
3,页面显示
在balde模板页面中输出:
[ ========= 注意:仅有一页数据时,分页按钮是不显示的===========]
{!! $paginator->render() !!}
分页样式 : Bootstrap class="pagination"
=============================path带多个参数 ==========================
4.path带多个参数
// ************************************
// 分页逻辑
$perPage = 20;
if ($request->has('page')) {
$current_page = $request->input('page');
$current_page = $current_page <= 0 ? 1 :$current_page;
} else {
$current_page = 1;
}
//$item = array_slice($result['accountList'], ($current_page-1)*$perPage, $perPage); //按分页取数据
$total = $result['accountdata']['total'];
$path_arr = array();
$com_name = $request->input('com_name'); // 检索条件_公司名称
$com_name = empty($com_name) ? null : trim($com_name);
if (!empty($com_name)) $path_arr['com_name'] = trim($com_name);
$select_group = $request->input('select_group'); // 检索条件
$select_group = empty($select_group) ? null : trim($select_group);
if (!empty($select_group)) $path_arr['select_group'] = trim($select_group);
$path = Paginator::resolveCurrentPath(); // 获取当前的链接"http://localhost/admin/account"
if (count($path_arr) > 0) $path.= '?'.http_build_query($path_arr);// 拼接参数
$paginator =new LengthAwarePaginator($result['accountList'], $total, $perPage, $current_page, [
'path' => $path, //设定个要分页的url地址。也可以手动通过 $paginator ->setPath(‘路径’) 设置
'pageName' => 'page',
]);
// ************************************
return view('admin.account.search')->with('retData',$result)->with('paginator',$paginator);
5.注:
http_build_query方法:
生成 url-encoded 之后的请求字符串描述string http_build_query (
array formdata [, string numeric_prefix] )
实例:
<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');
echo http_build_query($data);
/* 输出:
0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
*/
echo http_build_query($data, 'myvar_');
/* 输出:
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
*/
?>
相关文章推荐
- Laravel手动创建分页器
- Laravel手动创建分页器
- 深入理解Laravel框架--手动创建laravel框架(1)
- 深入理解Laravel框架--手动创建laravel框架(2)
- laravel手动创建数组分页的实现代码
- laravel使用artisan创建迁移后手动删除迁移文件报错解决方法
- Laravel5.4手动创建分页
- laravel手动创建分页
- ubuntu 下面手动创建引用程序启动项(转)
- Maven 系列 二 :Maven 常用命令,手动创建第一个 Maven 项目【转】
- 手动创建一个git
- 手动创建安卓关闭虚拟键背景灯桌面快捷方式
- 在 Laravel 5 中集成 Intervention Image 实现对图片的创建、修改和压缩处理
- Hive创建表时报错,Specified key was too long; max key length is 767 bytes
- hiberbater 根据当前配置情况手动创建数据库
- 手动创建XIB文件
- Laravel中创建模型文件
- 手动创建数据库步骤
- Laravel 手动分页
- 创建Qt项目之02(手动创建)