答案是ThinkPHP 6.0+中Db类调用方式变更导致错误,需确认版本并使用composer show topthink/framework检查,正确引入use think\facade\Db;,替换旧的think\Db调用,清除缓存执行composer dump-autoload和php think clear即可解决。

出现 Class 'think\\facade\\Db' not found 错误,通常是因为 ThinkPHP 版本升级后命名空间或类的调用方式发生了变化。特别是在从 ThinkPHP 6.0 之前版本升级到 6.0+ 时,
Db类的位置和引用方式有较大调整。
确认 ThinkPHP 版本
该问题常见于 ThinkPHP 6.0 及以上版本。TP6 中对门面(Facade)进行了重构,原来的
think\facade\Db已被移除或更名。
运行以下命令查看当前版本:
composer show topthink/framework使用正确的 Db 类调用方式(TP6+)
在 ThinkPHP 6.0 及以上版本中,推荐直接使用
think\facade\Db,但需确保已正确安装并配置。
立即学习“PHP免费学习笔记(深入)”;
请检查以下几点:
- 确保
topthink/framework
已正确安装且为 6.x 版本 - 在使用 Db 前,引入正确的命名空间:
然后就可以正常使用,例如:
$result = Db::table('user')->select();检查是否缺少 facade 配置(TP5 升级到 TP6 的常见问题)
如果你是从 TP5 迁移过来的项目,可能遗留了旧的调用方式。TP6 不再默认支持
use think\Db;这种静态调用。
解决方案:
- 统一改为
use think\facade\Db;
- 不要使用
think\Db::name()
,应使用Db::table()
清除缓存并重新加载自动加载
有时类找不到是由于 Composer 自动加载未更新。
执行以下命令刷新自动加载:
composer dump-autoload如果是 TP6 项目,还可以尝试清除框架缓存:
php think clear 基本上就这些。只要确认版本、使用正确的命名空间、清除缓存,这个问题就能解决。











