【问题标题】:when migrate the table throws exception in laravel eloquent当迁移表在 laravel eloquent 中抛出异常时
【发布时间】:2026-01-29 00:45:01
【问题描述】:

帮我解决

[Symfony\Component\Debug\Exception\FatalThrowableError]
找不到类“Doctrine\DBAL\Driver\PDOMySql\Driver”

【问题讨论】:

  • local.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found in /home/css/web/vendor/laravel/framework/ src/Illuminate/Database/MySqlConnection.php:65
  • 你配置数据库了吗?
  • @pradeep 是的,我在 env 文件中配置了 db。
  • @murugesh 您是否通过给定的答案解决了您的问题?还是您仍然遇到问题?

标签: php laravel eloquent


【解决方案1】:

您需要doctrine/dbal 包吗?

如果还没有,请运行以下命令。

composer require doctrine/dbal

阅读关于修改列

的部分

https://laravel.com/docs/5.6/migrations#modifying-columns

取自 laravel 文档

在修改列之前,请务必将教义/dbal 依赖项添加到您的 composer.json 文件中。 Doctrine DBAL 库用于确定列的当前状态并创建对列进行指定调整所需的 SQL 查询:

【讨论】:

    【解决方案2】:

    运行composer require doctrine/dbal

    然后

    运行composer update

    它应该可以解决问题。

    【讨论】:

    • 不需要作曲家更新。它会更新所有依赖项。他可能不想那样。作曲家要求就足够了。
    • 我不确定,但require是添加所需的包。
    • 如果你运行 composer install dictionary/dbal,它会安装包,而不更新其他依赖项。
    • 如果你有一个严格的设置,你依赖于特定版本的包。您应该使用更新,除非您确定它不会破坏您当前的代码库。
    • @Gammer 是的,我可以在应用程序中的作曲家更新后跟踪日志。[laravel 日志]
    【解决方案3】:
    composer require doctrine/dbal:^2.12.1
    

    他们更改了 dbal 3 上的类路径,因此您将需要旧版本。

    【讨论】:

      【解决方案4】:

      您需要正确生成迁移,然后只有在您尝试迁移表时它才会起作用

      要创建迁移,您需要使用 make:migration

      php artisan make:migration create_users_table
      

      新的迁移将放置在您的 database/migrations 目录中。每个迁移文件名都包含一个时间戳,它允许 Laravel 确定迁移的顺序。

      --table 和--create 选项也可用于指示表的名称以及迁移是否将创建新表。这些选项使用指定的表预先填充生成的迁移存根文件:

      例如,

      php artisan make:migration create_users_table --create=users
      
      php artisan make:migration add_votes_to_users_table --table=users
      

      更多信息请阅读migrating tables in laravel

      【讨论】:

      • 这个解决方案与OP的错误无关。