Laravel5.2 手动分页以及自定义样式
2016-10-26 12:30
375 查看
#vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:480
return new LengthAwarePaginator($this->get($columns), $total, $perPage, $page, [ 'path' => Paginator::resolveCurrentPath(), 'pageName' => $pageName, ]);
可以发现了分页的源码了 拿出来直接使用
use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Pagination\Paginator; use Illuminate\Http\Request; //演示分页 //输出分页{{ $paginator->render() }} function userList(Request $request) { $users = [ ['username'=>'zhangsan', 'age'=>26], ['username'=>'lisi', 'age'=>23], ['username'=>'wangwu', 'age'=>62], ['username'=>'zhaoliu', 'age'=>46], ['username'=>'wangmazi', 'age'=>25], ['username'=>'lanzi', 'age'=>24], ['username'=>'pangzi', 'age'=>21] ]; $perPage = 3; if ($request->has('page')) { $current_page = $request->input('page'); $current_page = $current_page <= 0 ? 1 :$current_page; } else { $current_page = 1; } $item = array_slice($users, ($current_page-1)*$perPage, $perPage); //按分页取数据 $total = count($users); //也可以这样 //$paginator=new LengthAwarePaginator($item, $total, $perPage); // $paginator=$paginator->setPath(route('admin.wxmenu.index')); $paginator =new LengthAwarePaginator($item, $total, $perPage, $current_page, [ 'path' => Paginator::resolveCurrentPath(), //设定个要分页的url地址。也可以手动通过 $paginator ->setPath(‘路径’) 设置 'pageName' => 'page', ]); $userlist = $paginator->toArray()['data']; return view('lawyer.index', compact('userlist', 'paginator')); }
2.很多时候需要自定义html。简单的查看下源码发现:
if (is_null($presenter) && static::$presenterResolver) { $presenter = call_user_func(static::$presenterResolver, $this); }
那么我们就可以自定义一个 boolawuiThreePresenter 类,继承自BootstrapThreePresenter。就可以自定义样式了
<?php namespace App\Http\Controllers\Common; class boolawuiThreePresenter extends \Illuminate\Pagination\BootstrapThreePresenter { public function render() { if ($this->hasPages()) { return sprintf( '<ul class="am-pagination am-pagination-centered">%s %s %s</ul>', $this->getPreviousButton(), $this->getLinks(), $this->getNextButton() ); } return ''; } /** * Get HTML wrapper for disabled text. * * @param string $text * * @return string */ protected function getDisabledTextWrapper($text) { return '<li class="am-disabled"><span>'.$text.'</span></li>'; } /** * Get HTML wrapper for active text. * * @param string $text * * @return string */ protected function getActivePageWrapper($text) { return '<li class="am-active"><span>'.$text.'</span></li>'; } }
然后使用的时候只需要传入这个类就行了
{!! $paginator
->appends(['sort' => 'votes'])//传参数->render(new App\Http\Controllers\Common\boolawuiThreePresenter($paginator)) !!}
相关文章推荐
- Asp.NET MVC X.PageList.MVC 分页详解以及自定义样式
- laravel自定义分页样式
- Laravel自定义分页样式
- 自己实现的数据表格控件(dataTable),支持自定义样式和标题数据、ajax等各种自定义设置以及分页自定义
- GridView分页的实现以及自定义分页样式功能实例
- laravel 关联关系 自定义分页(还是采用与laravel自带的样式相同)
- GridView分页的实现以及自定义分页样式功能实例
- Laravel自定义分页样式
- 自己实现的数据表格控件(dataTable),支持自定义样式和标题数据、ajax等各种自定义设置以及分页自定义
- GridView分页的实现以及自定义分页样式功能实例
- .Net通用分页类(存储过程分页版,完全自定义显示样式,包括中英显示)
- Asp.net中DataGrid控件的自定义分页以及存储过程的问题
- GridView自定义分页样式
- DataGrid自定义分页以及几种常用的删除方法
- Repeater控件的嵌套使用、自定义分页及加链接,样式制定源代码。
- GridView自定义分页样式
- 扩展GridView控件(10) - 自定义分页样式
- 菜鸟也封装之asp.net自定义双样式分页控件.
- .Net通用分页类(存储过程分页版,完全自定义显示样式,包括中英显示)
- DataGRID自定义分页样式