IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Problème insertion avec paramètre passé dans le route


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 19
    Points : 14
    Points
    14
    Par défaut Problème insertion avec paramètre passé dans le route
    Bonjour,

    Je suis débutante avec symfony2, ce que je veux faire consiste a passer un $id via le routing:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SearchEngineBundle_vote:
        pattern:   /vote/{id}
        defaults:  { _controller: TutorialSF2SearchEngineBundle:SearchEngine:vote }
    Passer le $id en paramètre dans mon contrôleur pour inserer les données saisie à partir d'un form :

    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
    public function voteAction($id) {
            $message = '';
            $em = $this->container->get('doctrine')->getEntityManager();
     
     
            // creation d’un nouveau article
            $vote = new Vote();
     
            //association entre les 2 objets articleform et le article
            $form = $this->container->get('form.factory')->create(new VoterForm(), $vote);
            //recuperation des données envoyer
            $request = $this->container->get('request');
            //la discussion de la methode d'envoi (seulement post) si get non servie
            if ($request->getMethod() == 'POST') {
                //recuperation des données envoyer par la formulaire et affecter a $form
                $form->bindRequest($request);
                //la validateur appartir du classe (modele)
                if ($form->isValid()) {
                    $em->persist($vote);
                    $em->flush();
     
                    $message = 'Entreprise ajouté avec succès !';
                    //$this->redirect('TutorialSF2SearchEngineBundle:SearchEngine:search.html.twig');
                     return $this->redirect($this->generateUrl('SearchEngineBundle_search'));
                }
            }
            //la methode createView est une methode predifini de la classe Form 
            return $this->container->get('templating')->renderResponse('TutorialSF2SearchEngineBundle:SearchEngine:vote.html.twig', array(
                        array('id' => $id),        
                        'form' => $form->createView(),
                        'message' => $message,
                           )
            );
        }
    pourriez vous m'aider à trouver une solution svp

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    pourriez vous m'aider à trouver une solution svp
    Trouver une solution a quoi? y'a même pas de question...

    le code que tu as posté devrait marcher, il suffit de lui donner le paramètre quand tu génère la route
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $this->generateUrl('SearchEngineBundle_vote',array('id' => 5);
    {{ path('SearchEngineBundle_vote', { "id" : 5 } ) }}

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Merci pour votre réponse, je me suis mal exprimé:
    j'ai deux entité Entreprise et vote , le but c'est de créer une entité EntrpriseVote avec attributs(id_entreprise, id_vote, date_vote)
    quand je sélectionne une entreprise et je vote j'ai ce message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Entity of type TutorialSF2\SearchEngineBundle\Entity\EntrepriseVote is missing an assigned ID for field 'entreprise'. The identifier generation strategy for this entity requires the ID field to be populated before EntityManager#persist() is called. If you want automatically generated identifiers instead you need to adjust the metadata mapping accordingly.

Discussions similaires

  1. Problème avec paramètre date dans Crystal Report
    Par callo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/10/2008, 18h44
  2. Problème insertion avec le caractère /
    Par wormseric dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2007, 15h22
  3. Paramètre passé dans l'adresse
    Par rstephane21 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 05/03/2007, 15h13
  4. [Hibernate] Insertion avec paramètres null
    Par kephy dans le forum Hibernate
    Réponses: 5
    Dernier message: 14/02/2007, 09h22
  5. [xsl] Problème hyperlink avec paramètre
    Par ekmule dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/12/2005, 08h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo