thinkphp 6.0 缓存清理后报错主因是误删 runtime/config/ 等关键目录或漏清 view/ 与 route.php——config/ 删除会导致 class not found 或数据库 host 为 null;view/ 与 route.php 必须同步清除,推荐命令:php think clear --template && php think route:clear(tp6.0)。

ThinkPHP 6.0 缓存清理后报错,多数不是清理本身出问题,而是删错了位置、漏清了关联项,或清理方式与当前版本不匹配。重点盯住 runtime/ 目录下的结构安全和缓存依赖关系,别一删了之。
确认是不是删错了关键目录
runtime/ 下只有 view/、route.php、cache/ 等属于可清理范围;config/、log/、session/ 这些目录绝对不能删——尤其是 config/,里面存着数据库连接、中间件等核心配置缓存,删掉会直接触发 Class not found 或数据库 host 为 null 等致命错误。
- 检查 runtime/config/ 是否还在,若已消失,需立刻恢复(可从备份复制,或重新访问一次接口让框架重建)
- log/ 被删会导致日志写入失败,但不会中断请求;session/ 被删仅影响当前会话,通常可自动重建
- view/ 和 route.php 是安全清理目标,但必须一起操作,缺一不可
模板+路由缓存必须同步清除
改了模板文件但页面不更新,或新增路由返回 404,大概率是只清了 view/ 没清 route.php,或反过来。这两个缓存互不感知,但改动生效必须双清。
- 推荐命令(TP6.1+):php think clear -t && php think route:clear
- TP6.0 请用:php think clear --template && php think route:clear
- 手动删:进 runtime/view/ 删除所有子目录和 .php 文件(保留空 view/ 文件夹);再删 runtime/route.php 单个文件
类找不到(如 Class 'thinkacadeDb' not found)
这类报错常发生在清理后执行 composer dump-autoload 或 php think clear 时,本质是自动加载映射未更新或门面引用不规范。
- 先确认是否用了正确的命名空间:use thinkacadeDb;,不是 thinkDb 或 thinkDb
- 运行 composer dump-autoload -o 强制重写类映射,尤其当多个项目共用 vendor 时更需这步
- 检查 vendor/composer/autoload_psr4.php 中 "think\" 对应路径是否指向当前项目的 framework/src/
清理后首次访问变慢或报错
这是正常现象——route.php 和 config.php 等缓存文件被删后,框架会在下一次请求中重建,期间可能因权限、目录不可写或 OPcache 未生效而失败。
- 查看 runtime/log/ 最新日志,搜索 Cache directory not writable 或 Cache not hit
- 确保 web 进程用户(如 www-data)对 runtime/ 及其子目录有读写权限,且不是 root 创建后未 chown
- 若 config_cache 开启了,检查 runtime/cache/config.php 是否生成成功,并用 php -r "echo opcache_is_script_cached('runtime/cache/config.php');" 验证是否进 OPcache
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











