Bonjour à tous,
J'utilise Symfony 3.4. Je suis sous Ubuntu 16.04.6.
J'ai créé une base de données sous MariaDB avec la commande :
Mon fichier .env contient la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part php bin/console doctrine:database:create
En me connectant à la BDD, je vois bien ma nouvelle base referentiel. OK pour le moment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DATABASE_URL=mysql://root:root@localhost:3306/referentiel?serverVersion=5.7
J'ai créé une entité Serveur avec 4 propriétés.
Puis j'ai lancé la commande :
qui m'a créé ma table parfaitement visible quand je me connecte à la BDD. Toujours OK.
Code : Sélectionner tout - Visualiser dans une fenêtre à part php bin/console doctrine:schema:update --dump-sql -f
J'ai ajouté, en ligne de commande, via des INSERT, des données dans cette table "serveurs".
Pour être sûr que Symfony voit bien mes données, j'ai lancé la commande :
qui me retourne un JSON parfaitement conforme à ce que j'ai saisi et donc à ce que je m'attendais. Encore OK donc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part php bin/console doctrine:query:sql "select * from serveurs"
Puis j'ai créé un contrôleur avec le code suivant :
et quand je le teste via l'URL http://127.0.0.1:8000/serveurs, j'obtiens l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <?php #src/Controller/ServeurController.php namespace App\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Doctrine\ORM\EntityManagerInterface; use App\Entity\Serveur; class ServeurController extends Controller { /** * @Route("/serveurs", name="serveurs_list") * @Method({"GET"}) */ public function getServeursAction(Request $request) { $serveurs = $this->getDoctrine() ->getRepository(Serveur::class) ->findAll(); /* @var $serveurs Serveur[] */ $formatted = []; foreach ($serveurs as $serveur) { $formatted[] = [ 'id' => $serveur->getId(), 'ip' => $serveur->getIp(), 'description' => $serveur->getDescription(), 'actif' => $serveur->getActif(), ]; } return new JsonResponse($formatted); } }
Auriez-vous une idée d'où pourrait venir cette erreur ?DriverException
Doctrine\DBAL\Exception\DriverException:
An exception occured in driver: could not find driver
at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:115
at Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException('An exception occured in driver: could not find driver', object(PDOException))
(vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:145)
at Doctrine\DBAL\DBALException::driverException(object(Driver), object(PDOException))
(vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:47)
at Doctrine\DBAL\Driver\PDOMySql\Driver->connect(array('url' => 'mysql://root:root@localhost:3306/referentiel?serverVersion=5.7', 'charset' => 'utf8mb4', 'host' => 'localhost', 'port' => 3306, 'user' => 'root', 'password' => 'root', 'driver' => 'pdo_mysql', 'driverOptions' => array(), 'defaultTableOptions' => array('collate' => 'utf8mb4_unicode_ci'), 'dbname' => 'referentiel', 'serverVersion' => '5.7'), 'root', 'root', array())
(vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:360)
at Doctrine\DBAL\Connection->connect()
(vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:833)
at Doctrine\DBAL\Connection->executeQuery('SELECT t0.id AS id_1, t0.ip AS ip_2, t0.description AS description_3, t0.actif AS actif_4 FROM serveurs t0', array(), array())
(vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php:884)
at Doctrine\ORM\Persisters\Entity\BasicEntityPersister->loadAll(array(), null, null, null)
(vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php:181)
at Doctrine\ORM\EntityRepository->findBy(array())
(vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php:164)
at Doctrine\ORM\EntityRepository->findAll()
(src/Controller/ServeurController.php:26)
at App\Controller\ServeurController->getServeursAction(object(Request))
(vendor/symfony/http-kernel/HttpKernel.php:151)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
(vendor/symfony/http-kernel/HttpKernel.php:68)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
(vendor/symfony/http-kernel/Kernel.php:200)
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
(public/index.php:25)
Toute idée serait la bienvenue.
D'avance, je vous remercie.
Partager