ThinkPHP实现在存在分页时再显示分页
一般在我们制作前端切图页面时,会默认的为客户写好分页样式,因为大多数CMS或程序框架在分页这块都有自己独特的风格,因此,在进行前端切图之前,一般我们会与客户进行沟通。
今天接到一个客户的对接需求:希望仅在产生分页的时候再生成分页HTML,而在信息条数不足以分页时,不显示分页。一般情况,使用CSS即可完成这样的需求,但是容纳分页的盒子元素,还是要存在于页面上的。该客户的需求需要从程序端来操作。客户使用的程序框架是ThinkPHP,以下总结下我们的解决思路:
在ThinkPHP中,框架默认提供了分页类,但是一般我们都使用的是paginate分页方法,即通过paginate获取列表数据$list,然后在HTML页面中通过{$list|raw}的标签即可调取分页,或者也可以在后端,通过$page=$list->render();来获取单独的分页变量,再在前端渲染,如下:
<div class="page">{$list|raw}</div>
// 或使用直接分页变量
<div class="page">{$page}</div>
但是上述这两种方法都没办法进行判断,我们打印$list发现其存在受保护的属性:total和per_page,即总条数和每页显示数量。但是因为这些属性是protected类型的,而且默认获取到的$list是数据集。因此,我们需要先通过toArray()方法将其转为数组格式后,再输出,这样的变量我们可以从中获取到total和per_page属性,从而进行判断,数据总条数是否大于每页显示数量,大于则显示分页,实现代码如下:
PHP代码:
View::assign([
'list' => $list->toArray(),
'page' => $list->render()
]);
HTML代码:
{gt name="$list.total" value="$list.per_page"}
<div class="page">{$page|raw}</div>
{/gt}
以上是在ThinkPHP中使用程序判断数据总条数是否大于每页显示数量,进而显示分页的方法和思路。其他的框架和程序也应都存在其对应的方法,属于比较冷门且很小众的一个需求,做以记录,以便大家用到时可以参考。

CSS颜色函数--rgb()、rgba()的语法和使用
rgb()函数和rgba()函数是前端切图工作当中经常用到的颜色函数,根据光学三原色红(red)、绿(green)、蓝(blue)三种颜色的不同分量进行混合后来
CSS最大值计算函数--max()函数的定义和使用
max()函数的作用是从一系列用逗号分割的参数中选取最大的一个,作为属性值,参数可以是直接数值,字面量、数学表达式、css函数等,支持嵌套。与min()函数的作
后台发布文章时自动保存草稿功能的实现
“正在系统后台编辑文章,顺手看了下群里的视频,关视频的时候不小心连网页一起关闭了,写了大半的文章说没就没了?”,相信很多人都遇到过这种场景,辛辛苦苦码了半天的字
WebStorm中如何配置SCSS
WebStorm是一款很优秀的用于前端开发的IDE,用于开发基于HTML、CSS、JS等的应用时非常应手,当然JetBrains旗下的其他IDE,如PHPSto
富文本编辑器CKEditor5接入指南
在后端制作CMS等需要用到富文本编辑器的时候,经常会陷入选择困难症,众所周知,目前市面上的富文本编辑器大概有数十种,比如百度的ueditor、TinyMCE、w
CSS函数整理,CSS函数的使用方法
有很多前端切图人员对CSS函数这个名词有些陌生,事实上有很多CSS函数我们经常在代码中使用,只是我们没有意识到而已。像我们常见的定义颜色值的rgb、rgba都属
CSS颜色函数--rgb()、rgba()的语法和使用
rgb()函数和rgba()函数是前端切图工作当中经常用到的颜色函数,根据光学三原色红(red)、绿(green)、蓝(blue)三种颜色的不同分量进行混合后来
CSS最大值计算函数--max()函数的定义和使用
max()函数的作用是从一系列用逗号分割的参数中选取最大的一个,作为属性值,参数可以是直接数值,字面量、数学表达式、css函数等,支持嵌套。与min()函数的作