在使用 composer 安装第三方 doctrine/dbal 时,出现报错
composer require doctrine/dbal
php artisan migrate
出现错误

Migrating: 2020_12_26_211034_add_phone_to_users_table
   Error
  Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found
  at vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php:64
    60|      * @return \Doctrine\DBAL\Driver\PDOMySql\Driver
    61|      */
    62|     protected function getDoctrineDriver()
    63|     {
  > 64|         return new DoctrineDriver;
    65|     }
    66| }
    67|
      +8 vendor frames
  9   database/migrations/2020_12_26_211034_add_phone_to_users_table.php:19
      Illuminate\Support\Facades\Facade::__callStatic("table")
      +21 vendor frames
  31  artisan:37
      Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
通过命令查看 composer 所安装过的第三方库,会发现 dbal 这个库已经安装过了(后面的版本是 3.0 我这里是问题解决过了所以显示的是 2.12.1)
composer show -i

那么已经安装过了,为什么还会提示找不到 PDOMySql/Driver 这个类呢,实际上是因为版本问题,简单理解就是 3.0 的版本已经将 PDOMySql\Driver 的引用方式升级到另一种写法了,但你的代码里的一些代码还是使用那种方式来引用的,这样就会提示 not found 找不到文件

解决方式
直接更改项目中的 composer.json 文件的 doctrine/dbal 库的版本为 2.0 然后 composer update 即可,最好是在项目根目录下执行 composer update 反正我是这样的,没试不在根目录下执行的方式,等待 update 成功后即可!


再次执行数据库迁移 php artisan migrate 就可以啦!