我知道这是常见问题。但我查看并阅读了所有内容。不幸的是,我找不到解决我问题的正确答案。我正在使用symfony。我遵循了https://symfony.com/doc/current/doctrine.html上的说明和教程。所有步骤都进行得很顺利。我在终端中运行以下命令没有任何问题:
composer require symfony/orm-pack
composer require --dev symfony/maker-bundle
php bin/console doctrine:database:create
php bin/console make:entity
php bin/console make:migration
php bin/console doctrine:migrations:migrate
php bin/console make:controller ProductController
使用上述命令,我可以创建一个数据库ProductEntity,一个Product表至此,我认为与数据库的连接运行良好。然后在ProductController中,我在交响乐网站上使用了代码:
// src/Controller/ProductController.php
namespace App\Controller;
// ...
use App\Entity\Product;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Response;
class ProductController extends AbstractController
{
/**
* @Route("/product", name="create_product")
*/
public function createProduct(): Response
{
// you can fetch the EntityManager via $this->getDoctrine()
// or you can add an argument to the action: createProduct(EntityManagerInterface $entityManager)
$entityManager = $this->getDoctrine()->getManager();
$product = new Product();
$product->setName('Keyboard');
$product->setPrice(1999);
$product->setDescription('Ergonomic and stylish!');
// tell Doctrine you want to (eventually) save the Product (no queries yet)
$entityManager->persist($product);
// actually executes the queries (i.e. the INSERT query)
$entityManager->flush();
return new Response('Saved new product with id '.$product->getId());
}
}
它给出错误:未在图中找到驱动程序我已经在env中检查了数据库url,它可以正常工作(我通过它创建了一个数据库和产品表)。我检查了phpinfo并启用了pdo_mysql,没有问题。我已按照此处https://symfony.com/doc/current/testing/database.html的说明测试了具有Fixature的数据库连接,并成功成功你能帮我么?see the Picture of Error
感谢guillaumesmo,我使用了symfony php -m。在这里,我看到了无法加载pdo_mysql库的错误。我记得,我的系统上安装了2个PHP版本。我将PHP版本更新为PHP 7.4.1,并删除了旧版本。它运作完美。我不明白为什么我可以通过Terminal和Fixature而不是通过EntityManagerInterface连接和更新数据库。无论如何,我现在工作