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 :

[Form] Formulaires imbriqués sur trois niveaux : paramétrer le troisième niveau ?


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut [Form] Formulaires imbriqués sur trois niveaux : paramétrer le troisième niveau ?
    Bonjour,

    j'ai :

    une entity Date :
    une entity Evement : Many-to-one Date
    une entity UserEvement : Many-to-one Evement et Many-to-one User

    J'ai un form qui a pour entrer une Date :
    Il m'affiche tous les Evènements pour cette date et une liste pour dire si le user est la ou pas

    Pendant mes tests avec un seul User cela marchait nikel

    Sauf que avec 2 users, il m'affiche 2 listes avec les choix des 2 users

    Quel est la méthode pour paramétrer le User de mon form ?

    Sachant que je veux tous les evenements du jours choisie dans un form

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    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
    public function mesevenementAction($numjour)
    {
     
    $lejour = new Njour();
    $lejour = $this->getDoctrine()->getManager()->getRepository('PVEventBundle:Njour')->find($numjour);
     
    $lesevents = $this->getDoctrine()->getManager()->getRepository('PVEventBundle:Event')->findByNjour($lejour);
     
     
    foreach ($lesevents as $event)
    {
    	$mesEvent = $this->getDoctrine()->getManager()->getRepository('PVEventBundle:UserEvent')->findByEventetuser($event,$this->getUser());
    	if($mesEvent == null)
    	{
    		$mesEvent = new UserEvent();
    		$mesEvent->setUser($this->getUser());
    		$mesEvent->setEvent($event);
    		$event->addUserEvent($mesEvent);
    	}
    	else
    	{
    		//??
    	}
    }
     
       if (!$lejour) {
       	$this->get('session')->getFlashBag()->add('info', 'Journee inconnue');
            $url = $this->generateUrl('pvevent_accueil');
    	return $this->redirect($url);
        }
    $form = $this->createForm(new NjourType(), $lejour);
     
        // On récupère la requête
        $request = $this->get('request');
     
        // On vérifie qu'elle est de type POST
        if ($request->getMethod() == 'POST') {
          // On fait le lien Requête <-> Formulaire
          // A partir de maintenant, la variable $article contient les valeurs entrées dans le formulaire par le visiteur
          $form->bind($request);
          // On vérifie que les valeurs rentrées sont correctes
          // (Nous verrons la validation des objets en détail dans le prochain chapitre)
          if ($form->isValid()) {
            // On l'enregistre notre objet $article dans la base de données
            $em = $this->getDoctrine()->getManager();
            $em->persist($lejour);
            $em->flush();
     	$this->get('session')->getFlashBag()->add('info', 'Event mise a jour');
    	$url = $this->generateUrl('pvevent_accueil');
    	return $this->redirect($url);
          }
        }
     
        return $this->render('PVEventBundle:Event:mesEvents.html.twig', array(
          'form' => $form->createView(),'numjour'=>$numjour
        ));
      }
    }

    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
    <h3>Mes Evements</h3>
     
    <div class="well">
        <form action="{{ path('pvprono_mesevents', { 'numjour': form.get('value').id  }) }}" method="post" {{ form_enctype(form) }}>
        {{ form_label(form.codjour, form.get('value').codjour) }}<br>
        {% for event in form.events %}
            {{ event.get('value').Nomevent }} 
             {% for userevent in journee.userevents %}
             {{ form_widget(userevent.statut) }} 
             {% endfor %}
             <br>
        {% endfor %}
        {{ form_widget(form) }}
            <input type="submit" class="btn btn-primary" />
        </form>
    </div>

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    Je comprend vraiment pas la méthode pour lier mon user au formulaire sachant qu'il est que sur le niveau 3 du form.

    Quelqu'un aurait une piste ?

    Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/10/2010, 10h20
  2. Héritage de templates sur trois niveaux
    Par Rabywan dans le forum Langage
    Réponses: 4
    Dernier message: 30/06/2009, 16h20
  3. Selects imbriqués sur 3 niveaux
    Par nono27200 dans le forum SQL
    Réponses: 7
    Dernier message: 22/10/2008, 16h05
  4. [Formulaire]filtre sur 4 niveaux de sous-formulaires
    Par fpecastaing dans le forum IHM
    Réponses: 48
    Dernier message: 12/04/2007, 12h43
  5. Ouvrture Formulaire basé sur une requête paramétrée
    Par teffal dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/07/2006, 16h04

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