You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8升级至9后出现Target class [db.schema]不存在错误求助

Laravel 8升级至9后「Target class [db.schema] does not exist」错误的原因与解决

错误原因

Laravel 9移除了容器中db.schema这个绑定项,而你的项目代码或第三方依赖中存在直接通过容器解析db.schema的逻辑(比如调用app('db.schema')或resolve('db.schema')),因此触发了绑定解析异常。该变更属于底层容器绑定的调整,未在升级指南中单独列出。

解决方法

  • 替换所有直接调用db.schema的代码,改用Laravel官方推荐的DB::getSchemaBuilder()方法获取Schema构建器实例,该写法同时兼容Laravel 8和9版本。
  • 排查项目自定义代码、服务提供者及第三方依赖,定位所有使用app('db.schema')的位置并替换。
  • 若问题由未适配Laravel 9的第三方依赖导致,可先检查该依赖是否有更新版本;若无适配版本,可临时在AppServiceProvider的register方法中添加兼容绑定(仅作过渡使用,建议后续替换为标准写法):
public function register()
{
    $this->app->bind('db.schema', function ($app) {
        return $app['db']->getSchemaBuilder();
    });
}

内容的提问来源于stack exchange,提问作者Ossy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:56:07