Tuto Gestion des options problème a 7 min 27

Par fuse, il y a 7 ans


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

Digivia, il y a 7 ans

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)

magicolala, il y a 7 ans

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

michdem, il y a 7 ans

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.

Claude Petite, il y a 6 ans

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;