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 formulaire Symfony 2 [2.x]


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Problème formulaire Symfony 2
    Bonjours les amis je suis tout nouveau ici^^

    Je commence a développer en symfony 2 depuis le mois de mars pour mon entreprise en alternance.
    Et depuis deux semaine je me heurte à un problème que je n'arrive pas à résoudre je commence a déprimer

    En résumé je créer un 1er formulaire dans une méthode qui apres validation insert les données dans la base puis me redirige vie la méthode forward avec un id dont j'ai besoin pour mon deuxième formulaire vers une autre méthode qui contient mon deuxième formulaire

    Mon problème c'est que mon deuxième formulaire ne rentre pas les données dans la base...
    Et je n'arrive depuis toujours pas à comprendre pourquoi
    Merci de votre aide
    Cordialement

    Shade

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    public function createVehicleHarnessAction()
    	{
    		$model       = new Model();
    		$vehicle     = new Vehicle();
    		$bench       = new Bench();
     
    		//Creation du formulaire pour insérer Vehicle
    		$bench->setDateAdd(new \Datetime());
    		$form        = $this->createForm(new BenchType, $bench);
     
    		$request = $this->get('request');
     
    			if ($request->getMethod() == 'POST')
    			{
    				$form->bind($request);
     
    				if($form->isValid())
    				{
    					$categoryF = $form->get('idVehicle')->get('idCategory')->get('category')->getData();
    					$carmakerF = $form->get('idVehicle')->get('idModel')->get('idCarmaker')->get('carmaker')->getData();
    					$modelF   = $form->get('idVehicle')->get('idModel')->get('Model')->getData();
    					$dateAdd = $form->get('dateAdd')->getData();
    					$analysisPlantF = $form->get('idAnalysisPlant')->get('AnalysisPlant')->getData();
    					$analysisStatusF = $form->get('idBenchStatus')->get('BenchStatus')->getData();
     
    					$repositoryPlant = $this->getDoctrine()->getRepository('BmtoolHomeBundle:AnalysisPlant');
    					$repositoryType = $this->getDoctrine()->getRepository('BmtoolHomeBundle:AnalysisType');
    					$repositoryStatus = $this->getDoctrine()->getRepository('BmtoolHomeBundle:BenchStatus');
    					$repositoryCate = $this->getDoctrine()->getRepository('BmtoolHomeBundle:Category');
    					$repositoryCar = $this->getDoctrine()->getRepository('BmtoolHomeBundle:Carmaker');
    					$repositoryMod = $this->getDoctrine()->getRepository('BmtoolHomeBundle:Model');
     
    					$category = $repositoryCate->find($categoryF);
     
    					$carmaker = $repositoryCar->find($carmakerF);
    					$modelList = $repositoryMod->find($modelF);
    					$analysisPlant = $repositoryPlant->find($analysisPlantF);
    					$analysisStatus = $repositoryStatus->find($analysisStatusF);
    					$analyseType = $repositoryType->find('2');//Harness
     
    					$vehicle->setIdCategory($category);
    					$model->setIdCarmaker($carmaker);
    					$model->getId($modelF);
    					$vehicle->setIdModel($modelF);
    					$bench->setIdvehicle($vehicle);
    					$bench->setDateAdd($dateAdd);
    					$bench->setIdAnalysisPlant($analysisPlant);
    					$bench->setIdAnalysisType($analyseType);
    					$bench->setIdBenchStatus($analysisStatus);
     
    					$em = $this->getDoctrine()->getManager();
    					$em->persist($vehicle);
    					$em->persist($model);
    					$em->persist($bench);
     
    					$em->flush();
     
    					$repositoryVehicle = $this->getDoctrine()->getRepository('BmtoolHomeBundle:Vehicle');
    					$idVehicle = $repositoryVehicle->find($vehicle);
     
    					//Envoie de la variable pour la methode createHarnessAction
    					$response = $this->forward('BmtoolCreateBundle:Create:createHarness', array('idVehicle' => $idVehicle,));
     
    					return $response;
     
    				}
    			}
     
    			return $this->render('BmtoolCreateBundle:Create:createVehicle.html.twig', array(
    					'form' => $form->createView(),));
    	}
     
    	//Create Harness
    	public function createHarnessAction($idVehicle)
    	{
    		//Test de la valeur de la variable Ok
    		echo $idVehicle;
    		$harness     = new Harness();
    		$harness->setIdVehicle($idVehicle);
    		$formHarness = $this->createForm(new HarnessType, $harness);
     
    		$request = $this->get('request');
     
    		if ($request->getMethod() == 'POST')
    		{
     
    			$formHarness->bind($request);
     
    			if($formHarness->isValid())
    			{
     
     
    				$harnessTypeF = $formHarness->get('idHarnessType')->get('type')->getData();
    				$harnessFamilyF = $formHarness->get('idHarnessFamily')->get('family')->getData();
    				$areaF  = $formHarness->get('idArea')->get('area')->getData();
    				$harnessSupplierF = $formHarness->get('idHarnessSupplier')->get('supplier')->getData();
     
    				$repositoryHType     = $this->getDoctrine()->getRepository('BmtoolHomeBundle:harnessType');
    				$repositoryHFamily   = $this->getDoctrine()->getRepository('BmtoolHomeBundle:HarnessFamily');
    				$repositoryHSupplier = $this->getDoctrine()->getRepository('BmtoolHomeBundle:HarnessSupplier');
    				$repositoryArea      = $this->getDoctrine()->getRepository('BmtoolHomeBundle:Area');
     
    				$harnessType = $repositoryHType->find($harnessTypeF);
    				$harnessFamily = $repositoryHFamily->find($harnessFamilyF);
    				$harnessSupplier = $repositoryHSupplier->find($harnessSupplierF);
    				$area = $repositoryArea->find($areaF);
     
    				$harness->setIdharnessType($harnessType);
    				$harness->setIdharnessFamily($harnessFamily);
    				$harness->setIdArea($area);
    				$harness->setIdharnessSupplier($harnessSupplier);
     
    				$em = $this->getDoctrine()->getManager();
     
    				$em->persist($harness);
    				$em->flush();
    			}
    		}
     
    		return $this->render('BmtoolCreateBundle:Create:createHarnessStep2.html.twig', array(
    				'formHarness' => $formHarness->createView(),
    				'idVehicle' => $idVehicle));		
    	}

  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
    Et je n'arrive depuis toujours pas à comprendre pourquoi
    La requete et ses paramètres get/post ne sont pas passé à la nouvelle requete du forward, puisque ce sont deux requête différentes.


    Parcontre je comprend pas pourquoi il y'a besoin de faire valider des formulaires a la chaines entre des controlleurs...

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour, ah oki merci
    Parce que c'est seul moyen que j'ai trouvér pour récupérer la variable dont j'ai besoin qui est dans le if pour pouvoir la passer à l'autre formulaire.....

  4. #4
    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
    Tu as deux formulaires a valider en même temps?
    Ou la validation du premier formulaire te donne l'id du nécessaire a la création d'un formulaire sur une autre page?

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour gototog,

    La validation du premier formulaire me donne l'id nécessaire à la création d'un formulaire sur une autre page.
    J'ai essayé de créer les deux formulaires sur la même page et cela ne marché pas.

    De base je voulais créer ces deux formulaires sur une même fonction mais cela ne fonctionnais pas car je n’arrivai pas à récupérer la variable dont j'avais besoin
    ligne 60:$idVehicle = $repositoryVehicle->find($vehicle); et la réutiliser pour mon deuxième formulaire car celle ci se trouvais dans le if $form->isValid().
    Finalement j'ai trouvé une solution qui fonctionne à pripori

    A la ligne 63 je remplace la methode forward par la methode generate Url et cela fonctionne!! ^^

  6. #6
    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
    Une fois que ton objet véhicule est inséré en base de données, tu as accès a son id.

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $repositoryVehicle = $this->getDoctrine()->getRepository('BmtoolHomeBundle:Vehicle');
    					$idVehicle = $repositoryVehicle->find($vehicle);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $idVehicle = $vehicle->getId();

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    hello
    Merci beaucoup!!! sa marche!!!!!

    Cordialement,
    ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/05/2008, 18h49
  2. [PEAR][HTML_QuickForm] Formulaire mail
    Par keiser1080 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 24/03/2006, 00h36
  3. Réponses: 2
    Dernier message: 19/12/2005, 12h23
  4. problème formulaire tabulaire
    Par jax69 dans le forum Access
    Réponses: 2
    Dernier message: 05/09/2005, 11h28
  5. Problème Formulaire + popup + page PHP
    Par nesbla dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/02/2005, 00h10

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