在使用 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
就可以啦!