Dcat 扩展包 dcat/easy-excel 的替代品

Dcat 系统默认使用 Easy Excel 作为导出工具,支持导出 csvxlsxods 等格式文件。

使用前必须先安装 Easy Excel

composer require dcat/easy-excel

Easy Excel 最后一次更新是2年前,它所依赖的 box/spout 包已经停止维护, 在我们执行完 composer 指令后,能看到控制台有警告信息:

Package box/spout is abandoned, you should avoid using it. No replacement was suggested.

我有如下两个方法可以解决此问题...

分类至 PHP
0条评论

Dcat 让查询过滤 $filter->between(xxx)->datetime() 默认从00:00:00开始到23:59:59结束

在 Dcat 中,使用$filter-between(xxx)-datetime() 这样的查询过滤,在页面上选择开始日期时,默认会取当前的时间。

而我们使用 between-datetime 作为时间范围选择,一般是期望开始日期的时分秒从00:00:00起,结束日期的时分秒则到23:59:59止。

想要实现这样的,只需以下两步骤...

分类至 PHP
0条评论

Docker 容器内中文显示乱码

在 docker 容器内使用 Bash 通过 ls 列取中文目录、文件时,中文会显示为乱码,简单一步就可以解决此烦恼。

在创建容器时加入环境变量: LANG=C.UTF-8

命令行方式:docker run … -e LANG=C.UTF-8 …

也可以在进入容器的时候指定:docker exec -it -e LANG=C.UTF-8 <container> bash

分类至 Docker
0条评论

为 Debian 12 的容器更换 APT 源

自 Debian 12 (bookworm) 开始,Debian 的容器镜像开始使用 DEB822 格式,而非之前的单行格式。

该更改目前只被作用于诸如 Docker Image 之类的容器镜像,传统意义上的 Debian 操作系统不受影响

原先应该修改的 /etc/apt/sources.list 文件现在已被移除。

现在,默认源的相关配置已被移至...

分类至 Linux
0条评论

mysql 两个 timestamp 类型的字段相减问题

假设有两个 timestamp 类型的字段,值分别是: 字段a:2023-12-12 23:59:54 字段b:2023-12-13 00:01:04 这两个字段相差70秒,但是执行 SELECT b - a FROM table 这样的 SQL 语句,得到的结果却是764150。 原因是,timestamp 类型字段直接相减时,mysql 先把字段转换成数值...

分类至 MySQL
0条评论

PHP 实现平滑关闭/重启

写过 CLI 常驻进程的老司机肯定遇到过这么一个问题:在需要更新程序的时候,我要怎样才能安全关闭老进程?你可能会想到 NGINX、php-fpm 之类的平滑重启是给进程发送 USR2 信号,然后它就会将当前请求处理完再退出。 但进程是怎样接收信号、处理信号,估计就不是很多人能说清楚了...

分类至 PHP
0条评论

关于 PHP 导入/导出 Excel 文件

很久以前,还在用 php5.x 的时候,将数据导出为 Excel 文件需要用到 PHPExcel 扩展包。随着 php 版本更新到 7.x,PHPExcel 已过时,官方推出全新版本 PhpSpreadsheet。

但无论是 PHPExcel 还是 PhpSpreadsheet,都有个弊端:内存开销极大!这在操作大文件时及其明显,脚本动不动就内存超标。针对这个问题,PhpSpreadsheet 新增了一个缓存功能,可以在操作表格时,将数据缓冲到 Redis、Memcache 等地方。

近年来,开发项目一直使用 DcatAdmin 后台框架,记得框架里有个导出 Excel 的功能,但却不需要安装 PhpSpreadsheet,而是需要安装 Easy Excel...

分类至 PHP
1条评论

HBuilder 开发的 uniapp 运行到 Android 模拟器

最近团队接了一个 APP 项目,前端使用 uniapp 开发,本人想试试效果,奈何我没有安卓手机,也没有苹果电脑。

于是,在网上找了一堆 windows 下的安卓模拟器,试了几个比较出名的:夜神模拟器、逍遥模拟器、雷电模拟器...。这些都无法满足需求,有的会跟 Hyper-V 冲突(需要关闭 Hyper-V 才能运行,我的 Docker 就没法用了),即便模拟器运行成功,启动 APP 后会白屏,只显示底部的 TabBar 栏(包括 uniapp 官方示例也如此)...

分类至 杂项
0条评论