Laravel —— 特殊分页
项目中,分页经常会用到。
Laravel 中也自带了分页功能。
但有些时候需要稍作修改,来满足自己的需求。
一、普通分页
1、控制器中,用 paginate() 方法。
$users = DB::table('users')->paginate(15);
或简单分页
$users = DB::table('users')->simplePaginate(15);
2、blade 模板中,可直接用查询结果数据
{{ $users->links() }}、{{ $users->render() }}
分页自带了 bootstamp 样式
3、自定义分页 URI
$users->withPath('custom/url');
4、附加参数到分页
$users->appends(['sort' => 'votes'])->links()
二、自定义分页
1、自定义分页模板
php artisan vendor:publish --tag=laravel-pagination
会在 resources/views 目录下自动创建 pagination/ 目录
会把自带分页中的模板 copy 在以上目录中。
2、修改模板
比如修改显示链接数,分页内容等。
3、调用自定义模板
$paginator->links('view.name')
links 参数为模板路径
三、集合中的分页
很多时候查询结果需要用 Collection 处理后再分页,而 Laravel 中是不支持的。
下面稍作修改,来实现上面的需求
1、集合处理查询结果
$users = DB::table('users')
            ->get()
            ->each(function($item, $key){
                $item->total = 11;
            })->paginate(15);
经过上面的处理后,会发现分页消失了。
2、分页加入服务提供者中
在 app/Providers/AppServiceProvider.php 文件,
头部引入下面类
use Illuminate\Pagination\Paginator;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
boot 方法中添加以下代码
if (!Collection::hasMacro('paginate')) {
            Collection::macro('paginate',
                function ($perPage = 15, $page = null, $options = []) {
                    $page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
                    return (new LengthAwarePaginator(
                        $this->forPage($page, $perPage), $this->count(), $perPage, $page, $options))
                    ->withPath('');
                });
        }
再去测试,发现分页又回来了。
Laravel —— 特殊分页的更多相关文章
- Laravel 手动分页实现
		Laravel 手动分页实现 基于5.2版本 在开发过程中有这么一种情况,你请求Java api获取信息,由于信息较多,需要分页显示.Laravel官方提供了一个简单的方式paginate($perP ... 
- 关于laravel框架分页报错的问题
		因为laravel框架有自己的分页封装,所以与其他框架相比laravel框架的分页的实现要方便的多 只要分别在php脚本与视图中使用 $data=DB::table('index_pic')-> ... 
- laravel自定义分页功能的实现:
		laravel版本:5.5.. 执行命令: php artisan vendor:publish --tag=laravel-pagination 在到 resources/views/vendor/ ... 
- laravel 自定义分页 offset 和 limit 的使用
		laravel 本身有一个自带的快速分页方法 paginate,只需要传入每页显示多少条数据就可以 了,但是如果想使用自定义从哪里开始呢,这时候就可以使用offset 和 limit 的组合,offs ... 
- 优化Laravel的分页LIMIT和OFFSET调用
		在分页系统中使用limit和offset是很常见的,它们通常也会和ORDER BY一起使用.索引对排序较有帮助,如果没有索引就需要大量的文件排序. 一个常见的问题是偏移量很大,比如查询使用了LIMIT ... 
- laravel 数据分页简单示例
		控制器代码:只需用paginate($pageSize)方法查询数据即可 $pageSize:每页显示的记录数 public function index() { $data = Member::pa ... 
- Laravel框架——分页
		第一种:查询时实现分页(不能使用groupBy) $users = App\User::paginate(15); or $users = User::where('votes', '>', 1 ... 
- Laravel手动分页的方法
		use Illuminate\Pagination\LengthAwarePaginator; public function index(Request $request){ $list =[... ... 
- laravel——ajax分页&删除&搜索
		一.视图代码 /*搜索*/<form action="javascript:search_brand()" name="searchForm"> & ... 
随机推荐
- nginx配置优化提高并发量
			1 nginx配置优化提高并发量 worker_processes 2; 这个按照CPU的核数来决定 2 worker_connections 65535; 这个一般设置65535即可 每个进程允许的 ... 
- 接口和抽象类的区别,注意JDK8的接口可以有实现。
			Java中,抽象类和接口有相似的地方.下面我们就来细说说接口和抽象类的异同. 首先是相同的地方: 1. 接口和抽象类都能定义方法和属性. 2. 接口和抽象类都是看作是一种特殊的类.大部分的时候,定义的 ... 
- Java生成二进制文件与Postman以二进制流的形式发送请求
			业务描述: 模拟终端(智能家居)发送HTTP POST请求,请求参数为二进制流:而且,二进制流是加密后的数据,因此调试分两步: 1.Java代码生成加密后数据,并保存为二进制流文件 (电脑上的图片就是 ... 
- stone2 [期望]
			也许更好的阅读体验 \(\mathcal{Description}\) 有 \(n\) 堆石子,依次编号为 \(1, 2,\ldots , n\),其中第 \(i\) 堆有 \(a_i\) 颗石子 你 ... 
- 使用StringBuilder构建字符串
			使用StringBuilder构建字符串确实可以提高效率,比“+”要高效不少.但使用时也有一些坑: 首先,我们指定一个StringBuilder,并设置其长度. StringBuilder build ... 
- timeout超时时长优化和hystrix dashboard可视化分布式系统
			在生产环境中部署一个短路器,一开始需要将一些关键配置设置的大一些,比如timeout超时时长,线程池大小,或信号量容量 然后逐渐优化这些配置,直到在一个生产系统中运作良好 (1)一开始先不要设置tim ... 
- maven安装配置  每次都百度,麻烦
			JDK已经安装 1. 下载:https://maven.apache.org/download.cgi 2. 解压 D:\Program Files\maven 配置环境变量 新建环境变量MAVEN ... 
- Spring-Cloud之Eureka注册与发现-2
			一.Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCloud将它集成在其 ... 
- 2019 斗鱼java面试笔试题 (含面试题解析)
			本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.斗鱼等公司offer,岗位是Java后端开发,因为发展原因最终选择去了斗鱼,入职一年时间了,之前面试了很多家公 ... 
- Java之路---Day10(抽象)
			2019-10-24-23:21:17 目录 1.抽象的方法 2.抽象类 3.抽象类和抽象方法的使用 4.抽象类的注意事项 5.案例代码 1.抽象的方法 What:如果父类当中的方法不确定如何进行{} ... 
