Symfony 4 на XAMPP - make: миграция не работает, не удалось найти драйвер - PullRequest
0 голосов
/ 23 сентября 2019

ПРЕДУПРЕЖДЕНИЕ: ПОДОЖДИТЕ, ПРЕЖДЕ ЧЕМ ОТМЕТИТЬ ЭТОТ ДУБЛИКАТ, ЗДЕСЬ МНОГО ПОХОЖИХ ВОПРОСОВ, НО НИЧЕГО, ЧТО МНЕ РАБОТАЕТ ДЛЯ МЕНЯ.

Я начинаю изучать php framework Symfony, и у меня есть некоторые проблемыс сущностями и миграцией.Когда я пытаюсь запустить команду bin/console make:migration на моем git Bush, она выдает мне следующие ошибки:

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. Мой компьютер - Windows 10, и код выполняется вСервер Apache сделан с XAMPP.БД является локальной (всегда с 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_mysqlc:\xampp\php\ext у меня есть файл с таким именем), кодировкой,версия базы данных (в mariadb-10.4.6), но ничего не изменилось.

В моем php.ini (один раз на c:\xampp\php) я уже удалил точку с запятой на extension=pdo_mysql, но ничего не изменилось.

Я также пытался удалить и переустановить доктрину, создать новый проект, найти в Интернете какие-то «драйверы mysql» (возможно, я искал не те вещи), а также удалить и переустановить весь xampp.

Ничего не помогло.

Как мне решить эту проблему?

1 Ответ

1 голос
/ 23 сентября 2019

Похоже, что вы не используете php.ini внутри xampp, но 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, и это должно решить вашу проблему, но лучшим решением будет исправить среду PATHв windows для поиска php.exe в c: \ xampp \ php

...