laravel paginator 接口使用分页/自定义分页

laravel5分页Pagination及扩展 Laravel 分页是很方便的一件事情,相对于其他PHP框架来说非常容易。但默认的分页样式往往不能满足我们日常的项目,通过谷歌搜索出来的搜索到的一些知识和结合自己的理解来展示一下Laravel自定义分页的实现 Laravel5默认分页在使用 Laravel 分页功能时,需要配合使用前端框架 Bootstrap 的分页组件,这两者结合甚为紧密。可是由于我的博客分页样式是自定义的,所以 CSS 类选择器 阅读详情

在使用laravel开发后端接口时,需要分页。但是paginate()无法传递当前页面值,只能传一个展示条数;

查看paginator

Illuminate\Pagination;
class Paginator extends AbstractPaginator {}

可以看到继承AbstractPaginator

trait MyPage
{
    protected function page($data = [],$perPage = 10,$page = 1)
    {
        $offset = ($page * $perPage) - $perPage;
        $res = new LengthAwarePaginator(array_slice($data, $offset, $perPage, true), count($data), $perPage, $page);
        $res = $res->toArray();
        return [
            //使用array_values去掉索引数组key
            'data'=>array_values($res['data']),
            'total'=>$res['total']
        ];
    }
}

创建一个trait直接使用LengthAwarePaginator
可以传入

$perPage //展示条数
$page //页码

可以看到数据如下

array:2 [
  "data" => array:1 [
    0 => array:5 [
      "id" => 2
      "name" => "test"
    ]
  ]
  "total" => 2
]

此数据就可供前端使用了
在控制器中

class TestController extends Controller
{
    use MyPage;
    
    省略....
    public function index(Request $request){
    ...
    	$data = User::get()->toArray();
    	$res = $this->page($data,$perPage,$page);
    	...
    }

之后发现这么写挺蠢的,拿到数据再做分页,有问题;

所以更新

	use Illuminate\Database\Eloquent\Builder;
	//把分页应该放到查询里
    public function paginate(Builder $query, $page = 1, $perpage = 10, $load = ''){
        $skip = ($page - 1)*$perpage;
        $count = $query->count('*');
        $totalPage = $count == 0 ? 0 : (int)ceil($count / $perpage);
        if($load === ''){
            $list = $query->skip($skip)->take($perpage)->get()->toArray();
        }else{
            $list = $query->skip($skip)->take($perpage)->get()->load($load)->toArray();
        }
        return [
            'data'=>$list,
            'total'=>$count,
            'totalPage'=>$totalPage,
        ];
    }

控制器里的代码还是差不多

	public function list(Request $req){
		...
		$data = $this->paginate(User::select('*'),$req->page1,$req->perpage);
		...
	}
laravel做api接口使用paginate自定义分页数据格式 { "code": 200, "data": { "current_page": 1, "data": [ { "id": 1, "name": "技术部", "description": "", "qr_code_path": "http://mag.com/1.jpg", " 阅读详情

相关推荐

Laravel框架执行原生SQL语句及使用paginate分页的方法

本文实例讲述了Laravel框架执行原生SQL语句及使用paginate分页的方法。分享给大家供大家参考,具体如下: 1、运行原生sql public function getList($data){ //获取前端传过来的参数 $user = $data['userId']; $office = $data['officeId']; $key = $data['oneKeySearch']; //进行模糊搜索和联合查询 $where = 'and 1=1 '; if($key!=null) { $where.= ' and ( a.code like "%' .

laravel 实现最最简单的一个分页接口

分页技术 是一种将所有数据分段展示给用户的技术.用户每次看到的不是全部数据,而是其中的一部分,如果在其中没有找到自习自己想要的内容,用户可以通过制定页码或是翻页的方式转换可见内容,直到找到自己想要的内容为止。 前10条记录: select * from table limit 0,10 第11至20条记录: select * from table limit 10,10 第21至30条记录: ...

cofecode的博客 4869

桁架 拓扑优化 matlab程序_拓扑优化在结构轻量化及板壳加筋肋最优布置的应用...

1 拓扑优化简介材料的有效利用一直都是人类追求的目标,也是许多研究领域不变的话题,并伴随着结构优化理论和方法的产生而发展。结构优化设计通常分为三个层次:(1)拓扑优化:在一个确定的连续区域内寻求结构内部非实体区域位置和数量的最佳配置,寻求结构中的构件布局及节点联结方式最优化,使结构能在满足应力、位移等约束条件下,将外载荷传递到结构支撑位置,同时使结构的某种性态指标达到最优;(2)形状优化:指在保持...

weixin_39525355的博客 1877

如何使用Laravel实现分页功能

当我们需要在开发网站和应用程序时展示大量数据时,分页是必不可少的功能,它不仅可以极大的提高用户体验,还能有效地减轻服务器的开销。在这里需要注意的是,我们在控制器中调用paginate方法时,传入的参数2代表了一页要显示几条数据,如果这个值设置得过小,则页面上的分页链接会很多,导致页面混乱;如果这个值设置得过大,则页面展示的数据量会很大,长时间阻塞请求,影响页面的打开速度,甚至会导致内存溢出等问题,所以要根据实际情况谨慎设置。在实例上调用render方法,Laravel即可自动生成分页链接。

taobao2024api的博客 1485

嵌入式调光控制库:轻量级软启/渐变/记忆逻辑实现

调光控制是智能照明系统的核心基础功能,涉及亮度调节、人机交互与电气安全多重需求。其底层原理依赖于对相位角或PWM占空比的精确时序控制,并需融合软启动、渐变过渡、状态记忆等工程化逻辑。这类轻量级调光行为逻辑层,不直接操作硬件寄存器,而是以确定性、无动态内存、可配置的方式封装用户意图到目标亮度值(0–100%)的映射过程,显著提升产品鲁棒性与跨平台复用能力。广泛应用于TRIAC交流调光、LED直流PWM驱动及DALI/Matter等智能照明协议网关中,尤其适合资源受限的Cortex-M系列MCU和FreeRTO

weixin_28949937的博客 579

【密码专栏】超强进阶:PLONK VS Groth16(上)

前言 前文《天冷了,干了这碗“零知识证明”鸡汤》对「零知识证明学习」作了一个形象化的比喻:炖鸡汤。那么本系列的主要内容可以简单概括为《论高压锅炖鸡汤的一百种方法》之方法二。在学会了“清炖鸡汤”之后,不如来一口“阿胶鸡汤”补补脑细胞吧! 正如鸡汤不同风味之间各具千秋,不同的zk-SNARK方案也各有所长。zk-SNARK方案可以被分为【通用】与【非通用】zk-SNARK,PLONK与Groth16分别是其中的典型代表。通过本系列,我们将对PLONK算法内容作简要介绍,并指出PLONK和Groth16算法思路上

Hyperchain的博客 1805

laravel 手动创建分页器LengthAwarePaginator

分页的方法; //Illuminate\Pagination\Paginator paginate()$users = DB::table('users')->paginate(15); //Illuminate\Pagination\LengthAwarePaginator simplePaginate()$users = DB::table('users')->simplePaginate(15); Paginator...

迷失的鱼的博客 1585

ZYNQ平台AXI DMA传输避坑指南:如何快速定位‘errors:200‘等中断故障

本文详细解析了ZYNQ平台AXI DMA传输中常见的'errors:200'等中断故障,提供了从寄存器解析到压力测试的完整解决方案。通过深入分析XILINX_DMA中断机制、错误分类及五步排查法,帮助开发者快速定位并解决DMA传输问题,提升系统稳定性与性能。

weixin_29159613的博客 440

分页性能优化全解析,彻底搞懂Laravel 10自定义分页底层机制

掌握Laravel 10 分页(Pagination)自定义技巧,提升列表性能与用户体验。详解如何通过自定义分页器、优化查询及使用游标分页应对大数据场景,显著减少内存占用并加快响应速度。适用于高并发列表、后台管理等场景,灵活性与性能兼具,值得收藏。

BreakNexus的博客 1039

本地部署gradle

在部署CAS构建执行包时,如果按照CAS的官方命令gradlew clean build,如果系统没安装过gradle,这个步骤将会从网上下载gradle,但是进度非常慢,耗时很长。为了更快地完成项目构建,我们可以直接在本地部署好gradle,节省一点时间。

益添的博客 779

vue 插件vue-awesome-swiper实现 三张图片,左右两边显示一半的效果的示例

希望我的愚见能够帮助你哦~,若有不足之处,还望指出,你们有更好的解决方法,欢迎大家在评论区下方留言支持,大家一起相互学习参考呀~

weixin_50450473的博客 3246

Laravel5.5 手动分页和自定义分页样式

基于Laravel5.5  在项目实施过程中,需要对从接口中获取的数据(或者通过搜索工具查询出来的数据)进行分页一、创建手动分页在laravel自带的分页中,一般是通过数据库查询访问paginate()方法来达到分页的效果 ,like this:class IndexControllerextends Controller { publicfunctionindex() { ...

Tina_1202的博客 8188

【STM32/GD32】Keil uVision生成bin文件:从编译选项到Bootloader升级实战

本文详细讲解了如何在Keil uVision中配置STM32/GD32工程,使其在编译后自动生成Bootloader升级所需的bin文件。通过解析fromelf工具的使用、构建后命令的配置以及内存布局规划,深入阐述了bin文件在固件升级中的核心作用,并提供了串口Bootloader的实战框架与常见问题解决方案。

weixin_29190169的博客 391

还在用默认分页?Laravel 10自定义分页路径让你脱颖而出

掌握Laravel 10分页路径自定义技巧,告别默认分页的局限。适用于API接口、SEO优化等场景,通过简单配置即可修改分页URL结构,提升用户体验与项目专业度。方法直观高效,值得收藏。

AlgoFun的博客 412

大语言模型原理与工程实践:行业大语言模型的评测:以金融行业大语言模型为例

大语言模型、金融行业、模型评测、自然语言处理、深度学习、Transformer、BERT、GPT 1. 背景介绍 近年来,大语言模型(Large Language Model,LLM)在自然语言处理(Natural Language Processing,NLP)领域取得了突破性的进

AI大模型应用之禅 137

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Laravel 10分页路径自定义指南(含RESTful友好路由实现方案)

掌握Laravel 10分页路径自定义方法,解决默认路径不友好问题。适用于RESTful API与前后端分离项目,通过路由配置实现语义化分页链接,提升SEO与用户体验。支持自定义参数键名与分页逻辑,灵活可控。值得收藏的实用指南,点击了解实现细节。

LiteTrans的博客 819

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Laravel分页样式改不动?揭秘视图替换与前端集成的终极方案

轻松解决Laravel分页样式定制难题,深入讲解Laravel 10 分页(Pagination)自定义方法,涵盖视图替换、前端框架集成与分页模板优化。适用于前后端分离与组件化开发场景,实现完全可控的分页UI,值得收藏。

CompiGap的博客 791

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Laravel 10分页如何自定义?揭秘开发者必知的7种高级实现方式

掌握Laravel 10分页(Pagination)自定义技巧,轻松实现高效数据展示。涵盖样式调整、接口优化、分页类扩展等7种高级方法,适用于前后端分离与高并发场景。提升用户体验与开发效率,值得收藏。

DebugVibe的博客 664

Laravel5.1+ 分页Pagination解析以及扩展

本文最早发表于本人博客: Laravel5.1+ 分页Pagination解析以及扩展 Laravel 的分页很方便,其实扩展起来也挺容易的,下面就来做个示例,扩展一下paginate() 和 simplePaginate()方法,来实现我们自定义分页样式,比如显示"上一页"和"下一页",而不是"《"和"》",当然扩展的方法掌握了你就可以...

weixin_34128534的博客 398

【Laravel高级开发必修课】:精准控制分页URL路径的7种实战方法

掌握Laravel 10分页的路径控制技巧,提升项目URL规范性与用户体验。本文详解7种实战方法,涵盖自定义路径、路由集成、API分页适配等场景,支持灵活配置与SEO优化。方法实用高效,值得收藏。

Instrulink的博客 862

你不知道的Laravel 10分页秘密:1个技巧提升用户体验与SEO排名

掌握Laravel 10分页路径优化技巧,轻松提升网站用户体验与SEO表现。通过自定义分页URL路径,使链接更友好、利于收录,适用于博客、电商等列表场景。有效避免重复内容问题,增强搜索引擎抓取效率。值得收藏的实用技巧,点击了解实现方法。

VarPerch的博客 450

Laravel Auto Presenter高级技巧:处理数组、集合与分页器的自动装饰

Laravel Auto Presenter是一个强大的Laravel扩展包,它能自动装饰绑定到视图的对象。这个自动装饰系统特别擅长处理复杂的数据结构,包括数组、集合和分页器。在本文中,我们将深入探讨如何充分利用Laravel Auto Presenter的高级功能来处理这些数据结构。 ## 🚀 为什么需要自动装饰? 在Laravel开发中,我们经常需要将原始数据转换为适合视图展示的格式。传

gitblog_00929的博客 391

thinkphp5.0,前后端分离写分页接口

问题: 由于前后端分离,我需要接收前端传入的current_page,page_size参数,来对分页进行设置。可官方文档中都是使用内置模板渲染,而我的是前后端分离。 我想用模型分页,不想用limit 解决过程 一开始想对Paginator类的属性进行设置,可是发现它是个抽象类。然后 我突然想到 内置模板是怎么渲染的,总要有上一页下一页的跳转吧,然后我就把$this->render()打印...

qq_38727902的博客 1746

Hifone API 开发指南:基于 api/v1 接口构建你的第三方应用

Hifone 是一款免费、开源、可自行托管的论坛软件(self-hosted forum software),基于 Laravel PHP 框架构建,拥有响应式界面、OAuth 登录、Markdown 与积分系统等丰富功能。更难得的是,它内置了一套简洁易用的 **api/v1 接口**,让开发者可以轻松为 Hifone 论坛构建移动端 App、桌面客户端或各类第三方应用。这篇 Hifone API

gitblog_00534的博客 1049

laravel 手动分页

很早就想记录一下,但是直到今天才有时间,目的就是希望大家可以避坑,下面进入正文 默认使用model方法paginate作为分页,其实laravel 里面已经做了很多处理,作为开发者来讲其实就想简简单单的调方法而已,但是事与愿违,总会有特殊的定制,下面就来讲讲怎么定义不一样的html 找到模版 找到Illuminate\Database\E...

weixin_33894992的博客 153

(Laravel 10分页路径配置避坑指南):生产环境必须注意的6个陷阱

解决Laravel 10分页路径配置常见问题,避免生产环境踩坑。涵盖自定义路径、路由兼容、API场景应用及SEO优化技巧,提升项目稳定性与用户体验。6个关键陷阱逐一解析,值得收藏。

BreakNexus的博客 1018
下一篇: 初识OPcache
cnoder
博客等级 码龄9年 6粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值