Symfony PDO异常找不到驱动程序

时间:2019-02-07 16:40:15

标签: php database symfony database-connection

我知道这个问题已经被提出,但是我找不到适合我的答案。

我在Linux上,并且用composer创建了一个symfony 4项目,并且我想安装EasyBundle admin。

一切正常,但是当我制作php bin/console server:run并转到地址链接,并将/admin放在页面的末尾时,我遇到了一个错误:

  

“在呈现​​模板的过程中引发了异常(“驱动程序中发生异常:找不到驱动程序”)。”

我整天都在搜索,尝试了所有内容,但无法正常工作。

4 个答案:

答案 0 :(得分:1)

安装mysql。然后做

bin/console doctrine:database:create

然后

bin/console doctrine:schema:update --force

答案 1 :(得分:0)

启动网络应用程序之前,首先是要设置合适的环境。

您需要设置LAMP或LEMP堆栈。

根据您的linux发行版,可能会有不同的操作。此类操作的详细信息不在此问题的范围内。

答案 2 :(得分:0)

要运行新建立的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.dbaldoctrine.orm部分最终可能会在您的项目中有所不同。至关重要的是设置driver: 'pdo_sqlite'server_version: '3'

现在,您可以按照@goto的答案进行操作,并且应该创建数据库。

在命令行上,您可以使用以下命令进行检查:

sqlite3 var/app.db

发出命令.tables,并列出表。

答案 3 :(得分:0)

我在使用 XAMPP 的 Windows 上遇到了同样的问题,因为在 .env 中我添加了错误的 MySQL 端口,而不是:

DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7"

我写道: DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3366/db_name?serverVersion=5.7"

当我将其更正为: DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7"

我能够运行: php bin/console 原则:数据库:创建

我希望它可以帮助犯同样错误的人。