我知道这是常见问题。但我查看并阅读了所有内容。不幸的是,我找不到解决我问题的正确答案。我正在使用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的说明测试了具有固定装置的数据库连接,并且成功完成了而没有任何问题 你能帮我么? see the Picture of Error
答案 0 :(得分:0)
多亏了guillaumesmo,我使用了symfony php -m。在这里,我看到了无法加载pdo_mysql库的错误。我记得,我的系统上安装了2个PHP版本。 我将PHP版本更新为PHP 7.4.1,并删除了旧版本。完美运作。我不明白为什么我可以通过Terminal和Fixature而不是通过EntityManagerInterface连接和更新数据库。无论如何我现在工作