XAMPP 上的 Symfony 4 - make:migration 不工作,找不到驱动程序

Symfony 4 on XAMPP - make:migration does't work, could not find driver

警告:请稍候,然后再将其标记为重复,这里有很多类似的问题,但对我没有任何帮助。

我开始学习 php 框架 Symfony,我在实体和迁移方面遇到了一些问题。当我尝试在我的 git 布什上 运行 命令 bin/console make:migration 时,它给了我这些错误:

In AbstractMySQLDriver.php line 106:
  An exception occurred in driver: could not find driver

In PDOConnection.php line 31:
  could not find driver

In PDOConnection.php line 27:
  could not find driver

我正在使用 Symfony 4。我的 PC 是 Windows 10,代码是 运行ning 在使用 XAMPP 制作的 Apache 服务器中。数据库是本地的(总是用 XAMPP 创建)并且是 MySQL(服务器 MariaDB 10.4.6)。PHP 版本是 7.3.9。

这是我的 .env Symfony 文件:

    ###> symfony/framework-bundle ###
    APP_ENV=dev
    APP_SECRET=b9c673023606f26343aee9c3d24a8aba
    #TRUSTED_PROXIES=127.0.0.1,127.0.0.2
    #TRUSTED_HOSTS='^localhost|example\.com$'
    ###< symfony/framework-bundle ###

    ###> doctrine/doctrine-bundle ###
    # Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
    # For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
    # Configure your db driver and server_version in config/packages/doctrine.yaml
    DATABASE_URL=mysql://root@localhost:3306/symfony
    ###< doctrine/doctrine-bundle ###

    ###> symfony/swiftmailer-bundle ###
    # For Gmail as a transport, use: "gmail://username:password@localhost"
    # For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
    # Delivery is disabled by default via "null://localhost"
    MAILER_URL=null://localhost

###< symfony/swiftmailer-bundle ###

这是我的 doctrine.yaml:

doctrine:
    dbal:
        # configure these for your database server
        driver: 'pdo_mysql'
        server_version: '5.7'
        charset: utf8mb4
        default_table_options:
            charset: utf8mb4
            collate: utf8mb4_unicode_ci

        url: '%env(resolve:DATABASE_URL)%'
    orm:
        auto_generate_proxy_classes: true
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        mappings:
            App:
                is_bundle: false
                type: annotation
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'App\Entity'
                alias: App

在这个文件中,我尝试用 php_pdo_mysql 更改驱动程序(在 c:\xampp\php\ext 中我有一个同名文件)、字符集、数据库版本(在 mariadb-10.4.6 中)但没有任何改变。

在我的 php.ini 中(c:\xampp\php 中的一次)我已经删除了 extension=pdo_mysql 处的分号,但没有任何改变。

我也尝试过卸载并重新安装 doctrine,创建一个新项目,在线搜索某种 "mysql drivers"(也许我搜索了错误的东西)以及卸载并重新- 安装整个 xampp.

没有任何效果。

我该如何解决这个问题?

似乎您没有在 xampp 中使用 php.ini,而是 C:\Program Files (x86)\php\php.ini 您的 php.ini 尝试在 C:\Program Files (x86)\php\php.ini 中搜索设置 您的电脑上是否安装了 php 的另一个实例? 可能在 PATH 环境中 php.exe 路径不在 xampp 的文件夹中 您可以尝试从 C:\Program Files (x86)\php\php.ini 中删除分号到 pdo_mysql 并且应该可以解决您的问题 但更好的解决方案是修复 windows 中的 PATH 环境以在 c:\xampp\php

中搜索 php.exe