Laravel 自增时不自动更新 updated_at:原因与处理方式

在 Laravel 里,`increment()` 不只是把数值字段加一,默认还会连带更新 `updated_at`。这篇文章结合源码说明这一行为的触发条件,并给出一个基于 trait 的轻量处理方式,适合浏览量、点赞数这类不希望改动更新时间的场景。

Laravel 自增时不自动更新 updated_at:原因与处理方式

在 Go 语言中获取文件的 MIME 类型

在 Go 项目里,靠文件后缀判断类型并不可靠,尤其是上传场景下,伪装扩展名会直接带来安全风险。本文用标准库 `http.DetectContentType` 和第三方库 `github.com/h2non/filetype` 两种方式,说明如何根据文件头识别真实 MIME 类型,以及各自适合的使用场景。

在 Go 语言中获取文件的 MIME 类型

Go 语言中的切片:从声明、初始化到追加与遍历

切片是 Go 中最常用的数据结构之一,看起来像数组,却更适合处理长度可变的数据。本文围绕声明、初始化、赋值、追加、再切片和遍历几个高频操作展开,结合代码说明切片怎么创建、何时扩容,以及日常开发里该怎样理解它和数组的区别。

Go 语言中的切片:从声明、初始化到追加与遍历

Go 如何兼容 PHP 的 serialize 和 unserialize

当 PHP 项目迁移到 Go 时,历史数据里常见的 `serialize()`/`unserialize()` 往往会成为兼容点。本文从 PHP 序列化规则入手,结合 `github.com/leeqvip/gophp` 的现成方案,说明 Go 里怎样直接解析和生成 PHP 序列化字符串,以及跨语言场景下该如何选择更稳妥的序列化格式。

Go 如何兼容 PHP 的 serialize 和 unserialize

Go 语言中如何实现 RSA 加解密与签名验证

这篇文章用一个更省代码的 Go 封装库,梳理 RSA 在实际开发里的三个基本动作:生成密钥、公钥加密私钥解密、私钥签名公钥验签。示例都基于 `github.com/forgoer/openssl`,适合想快速落地 RSA 功能、同时分清加密和签名职责的 Go 开发者。

Go 语言中如何实现 RSA 加解密与签名验证

Redis List 常用命令梳理:插入、读取、修改与弹出

Redis 的 List 常被当作“数组”来理解,但它更准确的使用方式,是围绕头尾插入、按索引读取和弹出元素来组织数据。本文按常见操作拆解 LPUSH、RPUSH、LRANGE、LSET、LINDEX、LPOP、RPOP 的行为差异,并补出索引规则与报错边界,方便快速上手。

Redis List 常用命令梳理:插入、读取、修改与弹出

在 Go 语言中如何进行 AES-ECB-256 加解密

这篇文章用一个可直接运行的 Go 示例,说明如何借助 `github.com/forgoer/openssl` 快速完成 `AES-ECB-256` 的加解密,并补清实际使用时最容易出错的三件事:32 位密钥长度、`PKCS7_PADDING` 填充方式,以及跨语言对接时常见的 `base64` 编码处理。

在 Go 语言中如何进行 AES-ECB-256 加解密

Java 和 Go 中接口实现的区别

Java 和 Go 都把接口当作行为契约,但两者在“怎么实现接口”这件事上走了两条路。Java 依赖显式声明和更强的类型约束,Go 则用隐式实现和接口组合强调行为匹配。理解这组差异,有助于判断两种语言各自适合的抽象方式。

Java 和 Go 中接口实现的区别