【问题标题】:PDODriver Exception Doctrine could not find driverPDODriver Exception Doctrine 找不到驱动程序
【发布时间】:2018-05-20 22:51:50
【问题描述】:

当尝试在 Symfony 4 和 Doctrine 中使用 pdo_mysql 驱动程序时,我运行 $entityManager->flush(); 我得到 An exception occurred in driver: could not find driver

输出:

Doctrine\DBAL\Exception\DriverException:
An exception occurred in driver: could not find driver

  at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:125
  at Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException('An exception occurred in driver: could not find driver', object(PDOException))
     (vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:184)
  at Doctrine\DBAL\DBALException::wrapException(object(Driver), object(PDOException), 'An exception occurred in driver: could not find driver')
     (vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:169)
  at Doctrine\DBAL\DBALException::driverException(object(Driver), object(PDOException))
     (vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:47)

.env 文件有

DATABASE_URL=mysql://USER:PASSWORD!@HOSTNAME/DATABASE

教义.yml

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

我已确保我的 docker php-fpm 容器具有正确的模块。

root@644cfdc6b45b:/usr/local/etc/php/conf.d# php -m | grep -i pdo
PDO
pdo_mysql
pdo_sqlite

我的 AWS RDS 实例正在运行 MySQL 5.7.21。我也能够创建和运行实体迁移,因此 bin/console 可以正常工作,但 Symfony 本身并没有找到合适的驱动程序。非常感谢任何有助于完成这项工作的提示。谢谢!

下面是我的用户控制器

<?php

namespace App\Controller;

use App\Entity\User;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;


class UserController extends Controller
{
    /**
     * @Route("/user", name="user")
     */
    public function index()
    {
        $entityManager = $this->getDoctrine()->getManager();

        $user = new User();
        $user->setName('Jay');
        $user->setUsername('testc');
        $user->setEmail('test@test.com');
        $user->setPassword(password_hash('testpassword', PASSWORD_DEFAULT));

        $entityManager->persist($user);

        $entityManager->flush();

        return new Response('Saved new user' . $user->getId());
    }
}

【问题讨论】:

    标签: php mysql symfony pdo doctrine-orm


    【解决方案1】:

    我不得不重新启动我的 docker 容器来解决这个问题。

    【讨论】:

      猜你喜欢
      • 2016-10-30
      • 2022-11-23
      • 2020-05-22
      • 2011-11-19
      • 2011-06-22
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 2014-04-23
      相关资源
      最近更新 更多