Bonjour,

Voila je rencontre un petit problème avec mon code quand je tape /option .

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

php bin/console make:crud Option

 created: src/Controller/OptionController.php
 created: src/Form/OptionType.php
 created: templates/option/_delete_form.html.twig
 created: templates/option/_form.html.twig
 created: templates/option/edit.html.twig
 created: templates/option/index.html.twig
 created: templates/option/new.html.twig
 created: templates/option/show.html.twig

  Success!

 Next: Check your new CRUD by going to /option/

Ce que je veux

le meme resultat c'est a dire arriver a la page option

Ce que j'obtiens

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; 
check the manual that corresponds to your 
MySQL server version for the right syntax to use near 'option t0' at line 1

pourtant je suis son tuto a la lettre

EntityRepository->findAll()
in src/Controller/OptionController.php (line 23)
    /**     
     * @Route("/", name="option_index", methods="GET")     
     */   
    public function index(OptionRepository $optionRepository): Response   
    {        
        return $this->render('option/index.html.twig', ['options' => $optionRepository->findAll()]);   
    }   

4 réponses


Salut,
On va manquer un peu d'infos là...
Quelques pistes :

  • As-tu passé ta migration doctrine (update shéma de base de données) avec succès?
  • Y a-t-il un champ un peu spécifique dans ton entité (style json)?
  • La version de ton MySql est-elle bien la même que celle définie dans doctrine.yaml :
    doctrine:
    dbal:
        # configure these for your database server
        driver: 'pdo_mysql'
        server_version: '5.7'

    Si tout ça est ok, donnes le détail de ton entité Option.
    Tu peux également trouver des infos sur la requête exécutée dans le webprofiler (la barre en bas de ta page web, tu cliques dessus et tu vas dans le menu Doctrine)

Salut, j'ai exactement la même erreure que dezedvixy

  • La migration est passée avec succès
  • Aucun champ spécifique (les mêmes champs que dans le tuto, générés depuis la console)
  • La version de mon MySql est '5.7.25' dans doctrine elle est définie '5.7'
  • Pas de soucis du côté de la requête exécutée ....

Si quelqu'un à d'autres pistes, je suis à l'écoute ...

Merci

Bonjour,
J'ai eu le même problème aujourd'hui.
Ce problème provient du nom de la table MySql "option" qui a été créé.
Le mot "option" est un mot réservé par MySql et qui, dans notre cas, provoque l'erreur.
Pour solutionner celà, j'ai modifié le nom de la table, le nom du fichier "option.php" de l'entity, la class... et tous les appels à cette class (en utilisant le nouveau nom).
Après ça, tout fonctionne correctement.

vous pouvez modifier le fichier vendor\doctrine\orm\lib\Doctrine\ORM\Persisters\Entity\BasicEntityPersister.php

dans la ligne 1102 .

Transformez :
$from = ' FROM ' . $tableName . ' '. $tableAlias;
à
$from = ' FROM `' . $tableName . '` '. $tableAlias;