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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
php bin/console doctrine:database:create
Mon fichier .env contient la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DATABASE_URL=mysql://root:root@localhost:3306/referentiel?serverVersion=5.7
En me connectant à la BDD, je vois bien ma nouvelle base referentiel. OK pour le moment.

J'ai créé une entité Serveur avec 4 propriétés.
Puis j'ai lancé la commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
php bin/console doctrine:schema:update --dump-sql -f
qui m'a créé ma table parfaitement visible quand je me connecte à la BDD. Toujours OK.
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
php bin/console doctrine:query:sql "select * from serveurs"
qui me retourne un JSON parfaitement conforme à ce que j'ai saisi et donc à ce que je m'attendais. Encore OK donc.

Puis j'ai créé un contrôleur avec le code suivant :
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);
    }
}
et quand je le teste via l'URL http://127.0.0.1:8000/serveurs, j'obtiens l'erreur suivante :
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)
Auriez-vous une idée d'où pourrait venir cette erreur ?
Toute idée serait la bienvenue.

D'avance, je vous remercie.