Doctrine erreur entités

Résolu/Fermé
link897 - 17 avril 2017 à 03:26
 francois - 15 févr. 2018 à 10:47
Bonjour,

ça fait un jour que j'ai un problème avec un message d'erreur et je ne trouve aucune réponse nulle part. J'ai suivi un tuto pour apprendre symfony et je tombe sur ce message d'erreur:

Uncaught PHP Exception Doctrine\ORM\ORMInvalidArgumentException: "Binding entities to query parameters only allowed for entities that have an identifier." at C:\wamp\www\Project\vendor\doctrine\orm\lib\Doctrine\ORM\ORMInvalidArgumentException.php line 188
Context: { "exception": "Exception(Doctrine\\ORM\\ORMInvalidArgumentException): Binding entities to query parameters only allowed for entities that have an identifier." }


symfony me dit que ça vient soit de celle ligne:
$commande = $em->getRepository('EcommerceBundle:Commande')->find($session->get('commande'));

soit de celle là:
$prepareCommande = $this->forward('EcommerceBundle:Commandes:prepareCommande',array('request' => $request));


Merci d'avance

3 réponses

Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 906
17 avril 2017 à 10:43
Bonjour,

la méthode find() attend un ID (valeur de la clé primaire, qui par défaut est un entier incrémental) et pas autre chose !
Donc, si la valeur de $session->get('commande') est autre chose que celle d'un ID alors c'est normal que cela engendre une erreur.
Admettons que tu as un ID (entier incrémental) et que chaque entité possède un numéro de commande "$numeroCmde" et que $session->get('commande') correspond ce numéro de commande alors il faudra utiliser :
findByNumeroCmde($session->get('commande'))
ou
findBy(array('numeroCmde' => $session->get('commande')));
0