Исключение Symfony PDO не может найти драйвер - PullRequest
0 голосов
/ 07 февраля 2019

Я знаю, что этот вопрос уже задавался, но я не смог найти ответ, который мне подходит.

Я работаю в Linux и создал проект symfony 4 с composer, и я хотел установить EasyBundle admin.

Все работает хорошо, но когда я делаю php bin/console server:run и перехожу на адресную ссылку, и ставлю /admin в конце, чтобы перейти на страницу, у меня появляется ошибка:

"Возникло исключение во время рендеринга шаблона (« Возникла исключительная ситуация в драйвере: не удалось найти драйвер »)."

Я искал весь день, пробовал все, ноЯ не могу заставить это работать.

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Прежде чем запускать ваше веб-приложение, Первым является настройка соответствующей среды.

В вашем случае вам необходимо настроить стек LAMP или LEMP.

В зависимости отв вашем дистрибутиве Linux могут быть разные манипуляции.Подробности таких манипуляций выходят за рамки этого вопроса.

0 голосов
/ 08 февраля 2019

Есть несколько вещей, которые вы должны сделать, чтобы запустить свой только что созданный проект Symfony.

Сначала вы должны настроить систему управления базами данных на своем компьютере.Хотя другие предложили MySQL, я бы посоветовал начать с sqlite3.Установка намного проще и отлично подходит для разработки.

Установите sqlite3 на свой компьютер.Если у вас есть дистрибутив на основе Debian, вы можете сделать это с помощью:

sudo apt install sqlite3 php-sqlite3

или с помощью менеджера пакетов.

После успешной установки вы должны изменить два файла:

.env

Найдите следующую строку:

# DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name

Если она не прокомментирована, прокомментируйте ее и добавьте следующую строку ниже:

DATABASE_URL="sqlite:///%kernel.project_dir%/var/app.db"

config/packages/doctrine.yaml

Этот файл должен выглядеть следующим образом:

parameters:
    # Adds a fallback DATABASE_URL if the env var is not set.
    # This allows you to run cache:warmup even if your
    # environment variables are not available yet.
    # You should not need to change this value.
    env(DATABASE_URL): ''

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

        url: '%env(resolve:DATABASE_URL)%'
        types:
            json: Sonata\Doctrine\Types\JsonType
    orm:
        auto_generate_proxy_classes: '%kernel.debug%'
        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

Самая важная часть - doctrine.dbal.Раздел doctrine.orm может в конечном итоге отличаться в вашем проекте.Необходимо установить driver: 'pdo_sqlite' и server_version: '3'.

Теперь вы можете следовать ответу @goto, и ваша база данных должна быть создана.

В командной строке вы можете проверить это с помощью:

sqlite3 var/app.db

Введите команду .tables, и таблицы должны быть перечислены.

0 голосов
/ 07 февраля 2019

Установите MySQL.Затем выполните

bin/console doctrine:database:create

Затем

bin/console doctrine:schema:update --force
...