laravel自定义分页效果
发布时间 - 2026-01-11 02:28:16 点击率:次对于laravel分页,自带一个paginate的方法,很好用,但是也是有局限性的。

所以自己针对于此写了一个自己的分页,具体代码如下
<?php
namespace ...;
use ...;
/**
* 自定义分页类,适合少数据的查询,多数据的时候不推荐
* Class CustomPaginate
* @package App\Tools\Paginate
*/
class CustomPaginate
{
/**
* 自定义数组分页
* @param $data = 返回结果
* @param $page
* @param $limit
* @return mixed
*/
public static function paginate($data, $page = 1, $limit = 10)
{
if (!is_numeric($page) || !is_numeric($limit)) {
return false;
}
$count = count($data);
$data = array_slice($data, ($page - 1) * $limit, $limit);
return new LengthAwarePaginator($data, $count, $limit, $page);
}
/**
* 参数解释 对外暴露的方法
* @param $data = array|collection 切记只支持这两种
* @param $page = 当前页
* @param $limit = 每一页展示几条
* @return array|false
* 返回结果为数组
* 调用实例: CustomPaginate::paginateToArray($data, $request->page, $request->limit);
*/
public static function paginateToArray($data, $page = 1, $limit = 10)
{
$isValidate = self::validate($data, $page, $limit); //验证
if ($isValidate === false) {
return false;
}
$res = self::paginate($data, $page, $limit)->toArray(); //分页数据转换为数组
//上一页 || 下一页 => path
if ($res['prev_page_url'] != null) {
$prev_page = $page - 1;
$res['prev_page_url'] = Paginator::resolveCurrentPath() . "?page=" . $prev_page . "&limit=" . $limit;
}
if ($res['next_page_url'] != null) {
$next_page = $page + 1;
$res['next_page_url'] = Paginator::resolveCurrentPath() . "?page=" . $next_page . "&limit=" . $limit;
}
return $res;
}
/**
* 验证参数是否合法
*/
public static function validate(&$data, &$page = 1, &$limit = 10)
{
$page = empty($page) ? 1 : $page;
$limit = empty($limit) ? 10 : $limit;
if (!is_array($data) && !$data instanceof Collection) {
return false;//"自定义分页方法只支持数组数据和集合数据";
}
if (!is_numeric($page) || !is_numeric($limit)) {
return false;//"page limit 参数只支持数字";
}
if ($data instanceof Collection) {
return $data = $data->toArray();
}
return $data;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# laravel
# 分页
# Laravel5.5 手动分页和自定义分页样式的简单实现
# PHP框架Laravel插件Pagination实现自定义分页
# laravel自定义分页的实现案例offset()和limit()
# laravel实现分页样式替换示例代码(增加首、尾页)
# Laravel手动分页实现方法详解
# Laravel+jQuery实现AJAX分页效果
# Laravel框架执行原生SQL语句及使用paginate分页的方法
# laravel手动创建数组分页的实现代码
# Laravel框架自定义分页样式操作示例
# 自定义
# 自己的
# 是有
# 下一页
# 上一页
# 写了
# 自带
# 于此
# 这两种
# 转换为
# 几条
# 大家多多
# 很好用
# 是否合法
# 当前页
# mixed
# App
# public
# page
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
教你用AI润色文章,让你的文字表达更专业
网站制作软件有哪些,制图软件有哪些?
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
Laravel如何为API生成Swagger或OpenAPI文档
Laravel如何配置和使用缓存?(Redis代码示例)
个人网站制作流程图片大全,个人网站如何注销?
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
Laravel如何实现数据库事务?(DB Facade示例)
如何在云主机快速搭建网站站点?
轻松掌握MySQL函数中的last_insert_id()
如何用AWS免费套餐快速搭建高效网站?
在Oracle关闭情况下如何修改spfile的参数
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
如何正确下载安装西数主机建站助手?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
Java类加载基本过程详细介绍
Python文件异常处理策略_健壮性说明【指导】
北京网站制作的公司有哪些,北京白云观官方网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何用景安虚拟主机手机版绑定域名建站?
无锡营销型网站制作公司,无锡网选车牌流程?
如何确保西部建站助手FTP传输的安全性?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
php结合redis实现高并发下的抢购、秒杀功能的实例
微信小程序 闭包写法详细介绍
,网页ppt怎么弄成自己的ppt?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
如何在云指建站中生成FTP站点?
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
Linux系统运维自动化项目教程_Ansible批量管理实战
简历在线制作网站免费版,如何创建个人简历?
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
昵图网官方站入口 昵图网素材图库官网入口
如何在建站之星网店版论坛获取技术支持?
深圳网站制作培训,深圳哪些招聘网站比较好?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
如何选择可靠的免备案建站服务器?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
下一篇:哪家网站建设公司性价比最高?
下一篇:哪家网站建设公司性价比最高?

