Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Suite à la reprise d'un projet, j'ai du me plonger dans ZEND et DOCTRINE.
J'ai donc créer un formulaire afin que les personnes puissent s'inscrire à la Newsletter de l'entreprise.
Suite à ce formulaire, je recupere correctement les données mais je n'arrive pas à les inserer dans ma base de données..
J'ai le tour de certaines discussions sur internet et je n'arrive pas à trouver la solution.
Ici, mon formulaire :
$this->add(array( 'name' => 'prenom', 'attributes' => array( 'required' => 'required', 'type' => 'text', 'placeholder'=> $placeholderPrenom, 'class' => 'textbox', ), )); $this->add(array( 'name' => 'nom', 'attributes' => array( 'required' => 'required', 'type' => 'text', 'placeholder'=> $placeholderNom, 'class' => 'textbox', ), )); $this->add(array( 'name' => 'adresseCourriel', 'attributes' => array( 'required' => 'required', 'type' => 'email', 'placeholder'=> $placeholderCourriel, 'class' => 'textbox', ), )); $this->add(array( 'name' => 'codePostal', 'attributes' => array( 'required' => 'required', 'type' => 'text', 'placeholder'=> $placeholderCodePostal, 'class' => 'textbox', ), )); $this->add(array( 'type' => 'Zend\Form\Element\Select', 'name' => 'profession', 'attributes'=> array( 'required' => 'required', ), 'options' => array( 'options' => array('0'=>'Choisir...','1' => 'Détaillant', '2' => 'Designer', '3' => 'Particulier', '4' => 'Autres' ), ), )); $this->add(array( 'name'=>'ok', 'attributes' =>array( 'type'=>'submit', 'value'=>'OK', 'class'=>'btnSubmit', ), ));
Et ici mon controller où je récupère les données :
public function indexAction() { $prenom = (string) $this->getRequest()->getPost('prenom'); $nom = (string) $this->getRequest()->getPost('nom'); $adresseCourriel = (string) $this->getRequest()->getPost('adresseCourriel'); $codePostal = (string) $this->getRequest()->getPost('codePostal'); $profession = (string) $this->getRequest()->getPost('profession');
Et je suis bloqué pour insérer mes données à partir de ce moment-ci..
Merci d'avance pour vos réponses.
Hors ligne
J'ai donc trouvé comment faire l'insertion des données mais cela ne marche toujours pas, ai-je une erreur dans mon code :
$newsletter = new \Application\Entity\Newsletter(); $newsletter->setNE_Prenom($this->getRequest()->getPost('prenom')); $em->persist($newsletter); $em->flush()
Hors ligne
Salut, déjà ce qu'il serait bien c'est de donner l'erreur quand tu vas chez le docteur tu lui dis pas "j'ai mal". Là c'est pareil .
Ensuite je t'encourage à lire la doc officielle sur les formulaires, regarder la doc de DoctrineModule et DoctrineORMModule il me semble qu'il y a des explications sur l'utilisation des formulaires avec Doctrine parce que là honnêtement vu comment tu récupères les informations de ton formulaire tu n'as pas pu lire la doc officielle à ce sujet. On ne les récupère pas du tout comme ça, là il n'est même pas validé par exemple.
Enfin il y a des sujets qui traitent déjà de ça ici même.
Si jamais tu ne t'en sors pas n'hésites pas à revenir poser des questions .
Hors ligne
Je le sais que mes informations ne sont pas validées. J'ai besoin de faire au plus vite c'est pour ca, je voulais absolument que l'ajout en BDD marche !
Doctrine ne me met pas d'erreur, c'est juste qu'il n'ajoute rien en base.
Hors ligne
Hmm sans erreurs c'est pas facile de savoir faudrait que tu actives le log des requêtes dans MySQL (ou ton SGBD) pour voir ce qui est fait (s'il y a une requête qui est envoyée). Ensuite tu peux essayer quand même un try catch autour du persist/flush pour voir si t'as quelque chose dans l'exception.
Tu pourrais nous mettre le mapping de ton entité aussi voir s'il n'y a pas quelque chose qui ne va pas.
Hors ligne