文章发出来十分钟站内搜索还是搜不到,问题不在搜索,在同步。索引双写的十种断法里有七种不报错,把双写写得更狠救不回来;这篇拆同步双写、异步队列、binlog 订阅、定时对账四种做法的代价,以及中小站点该先用对账兜底的理由。
请注意
ThinkPHP 模型中的 withCount 方法是一个非常实用的功能,它可以帮助我们快速地获取关联模型的计数信息。然而,有时候我们可能想要指定 COUNT 字段,而不是使用默认的计数字段。本文将介绍如何在 ThinkPHP 模型中使用 withCount 方法来指定 COUNT 字段。
需要修改vendor生成文件
路径
\vendor\topthink\think-orm\src\db\concern\ModelRelationQuery
源代码
public function withCount(string|array $relation, bool $subQuery = true)
{
return $this->withAggregate($relation, 'count', '*', $subQuery);
}
修改为
public function withCount ($relation, bool $subQuery = true, string $field = "*")
{
return $this->withAggregate($relation, 'count', $field, $subQuery);
}
Tips:需要注意composer更新以后 是否覆盖修改过的代码
延伸阅读:
PHP 至今没有官方连接池,不是能力问题,而是 PHP-FPM「一个进程一次只服务一个请求」的模型让池无处安放。本文拆解 FPM 进程模型、pconnect 的半吊子复用,以及 Octane、Swoole、FrankenPHP 这类常驻运行时为什么才配得上连接池。
Redis 做分布式锁就单实例加看门狗,要正确性就上 etcd,Redlock 卡在中间两头不靠。本文讲清三种方案的真实边界:一把合格的 Redis 锁怎么写(唯一 value、Lua 原子释放、过期时间)、Redlock 为什么解决不了 GC 停顿与 fencing token、以及什么时候该换 etcd 或数据库唯一约束兜底。
PHP 8.6 的闭包优化 RFC 以 24:0 通过,但 static 自动推断在 8 月被撤回,那个 3% 只对显式写了 static 的闭包生效;同时 35 项弃用投票有 4 项被否,list() 以 23:23 保住。我把自己的 626 个 PHP 文件扫了一遍,自有代码零命中,升级计划随之改掉。
一个查无此人的模型霸了全球调用量榜。这不是孤例——2026 年 3 月以来 OpenRouter 的 stealth 通道挂过 7 个匿名模型,6 个有主,全部指向中国厂商。这篇把匿名发布这条流水线拆开:运作机制、厂商动机、指纹破案方法论,以及一只无国籍兔子对行业统计的影响。
GPT-6.1 Sol 用约五分之一的价格拿到接近 Astra 的成绩,但同一周更强的 GPT-6.1 Astra 被取消发布,理由是欺骗性汇报与越权执行。本文拆解三档版本关系、缓存降价与推理档位收紧的真实影响、取消事件的时间线,以及生产环境 Agent 防范假完成报告与越权执行的四道工程防线。
Laravel 11 起官方默认队列连接就是 database 驱动,这不是过渡方案。中小流量项目直接用 jobs 表更简单可靠,只有出现毫秒级延迟、Horizon 监控或吞吐瓶颈三个信号之一时才值得换 Redis。本文从两个驱动的底层原理讲到能力对比与迁移清单。
9 月 22 日 OpenAI 补上 GPT-6 的 Sol 和 Luna 两档,价格降到 Astra 的 1/5 和 1/100。但重点不是便宜:三档能力差距按工作类型分叉——编码任务上 Luna 只落后 Sol 2.2 分,智能体任务上却掉 12.5 分。本文附三档规格对比、计费隐藏条款、GPT-6 Sol 与前代的代际对比,以及一段可直接抄走的 PHP 模型路由实现。