热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Laravel博客开发|自定义分页

Laravel项目默认情况下,由分页器生成的HTML与TailwindCSS框架兼容,然而,我使用的是BulmaCSS框架,

Laravel 项目默认情况下,由分页器生成的 HTML 与 Tailwind CSS 框架 兼容,然而,我使用的是 Bulma CSS 框架,现在需要自定义一个兼容 Bulma CSS 框架兼容的分页。

导出默认视图

使用 vendor:publish 命令将 Laravel 项目自带的分页导出到 resources/views/vendor 目录:

php artisan vendor:publish --tag=laravel-pagination

这个命令将会把分页视图导出到 resources/views/vendor/pagination 目录。该目录 9 个视图文件,其中 tailwind.blade.php文件就是默认的分页视图。

现在最简单的方式是直接修改 tailwind.blade.php文件来实现自定义分页,但我想在保持已有分页的情况下,再新增一个兼容 Bulma CSS 框架的分页。

添加分页视图

resources/views/vendor/pagination目录下添加一个 bulma.balde.php文件:

touch resources/views/vendor/pagination/bulma.blade.php

打开新建的文件,添加如下内容:
resources/views/vendor/pagination/bulma.blade.php

&#64;if ($paginator->hasPages())<nav class&#61;"pagination is-centered" role&#61;"navigation" aria-label&#61;"pagination">&#64;if ($paginator->onFirstPage())<a class&#61;"pagination-previous" disabled>上一页</a>&#64;else<a class&#61;"pagination-previous" href&#61;"%7B%7B%20%24paginator->previousPageUrl()%20%7D%7D">上一页</a>&#64;endif&#64;if ($paginator->hasMorePages())<a class&#61;"pagination-next" href&#61;"%7B%7B%20%24paginator->nextPageUrl()%20%7D%7D">下一页</a>&#64;else<a class&#61;"pagination-next " disabled>下一页</a>&#64;endif<ul class&#61;"pagination-list">{{-- Pagination Elements --}}&#64;foreach ($elements as $element){{-- "Three Dots" Separator --}}&#64;if (is_string($element))<li class&#61;"page-item disabled"><span class&#61;"page-link">{{ $element }}</span></li>&#64;endif{{-- Array Of Links --}}&#64;if (is_array($element))&#64;foreach ($element as $page &#61;> $url)&#64;if ($page &#61;&#61; $paginator->currentPage())<li><a class&#61;"pagination-link is-current" aria-label&#61;"Page {{ $page }}" aria-current&#61;"page">{{ $page }}</a></li>&#64;else<li><a href&#61;"%7B%7B%20%24url%20%7D%7D" class&#61;"pagination-link" aria-label&#61;"Goto page {{ $page }}">{{ $page }}</a></li>&#64;endif&#64;endforeach&#64;endif&#64;endforeach</ul></nav>
&#64;endif

服务提供者

现在修改 App\Providers\AppServiceProvider 服务提供者中的 boot 方法&#xff1a;

namespace App\Providers;use Illuminate\Pagination\Paginator;
use Illuminate\Support\ServiceProvider;class AppServiceProvider extends ServiceProvider
{/*** Register any application services.** &#64;return void*/public function register(){//}/*** Bootstrap any application services.** &#64;return void*/public function boot(){Paginator::defaultView(&#39;vendor.pagination.bulma&#39;);}
}

上面代码中&#xff0c;使用 Paginator 提供的 defaultView方法设置默认分页&#xff0c;其中 vendor/pagination.bulma参数指定分页视图。

展示

使用浏览器访问 [http://blog.test/blog](http://blog.test/blog) 可以看到分页样式如下所示&#xff1a;

在这里插入图片描述


推荐阅读
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
  • 本文总结和分析了JDK核心源码(2)中lang包下的基础知识,包括常用的对象类型包和异常类型包。在对象类型包中,介绍了Object类、String类、StringBuilder类、StringBuffer类和基本元素的包装类。在异常类型包中,介绍了Throwable类、Error类型和Exception类型。这些基础知识对于理解和使用JDK核心源码具有重要意义。 ... [详细]
  • php缓存ri,浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法。本文是小编日常整理有关thinkp ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
  • PHP小习题:PHP小练习题前几天在百度知道里面看到有位网友询问如何制作一下的小程序:用php语言设计一个小程序,计算今天到达下月的天数、全部输出这些天数,并使得每天的日期以三种颜 ... [详细]
author-avatar
水果jia
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有