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 :

Correspondance Controller et View


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : BTS IRIS

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut Correspondance Controller et View
    Bonjour,

    J'ai un petit soucis pour transmettre mes données a mes views.

    Un peu de code sera le bienvenu pour l'explication:

    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
    for($cpt=0;$cpt!=$resultCount;$cpt++)
           {
                //echo $resultId[$cpt]['livreIdlivre'];// Affichage de l'id du livre.
     
                //Requete pour trouver le titre du livre.
                $req=$this->getDoctrine()->getEntityManager()->createQuery("SELECT c.titre FROM LGBBourseLivresBundle:Livre c WHERE c.idlivre=".$resultId[$cpt]['livreIdlivre']);
                $resultLivre=$req->getResult();//On récupère le titre du livre en question.
     
                $titre=array(NULL);// On déclare un tableau vide.
     
                // On boucle pour remplir le tableau afin d'isoler chaques titres de livre.
                foreach ($resultLivre as $titre) 
                {
                    $titreLivre[$cpt]=$titre['titre'];
                }
     
                //echo $titreLivre[$cpt]; Affichage du titre du livre.
            }
    Ici je récupère tout les titres de mes livres dans un tableau.

    Ensuite je les envoie de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $this->container->get('templating')->renderResponse('LGBBourseLivresBundle:Rachat:facture.html.twig', array('Eleve'=> $eleve , 'Titre'=>$resultLivre));
    Ensuite j'éssais de les appeler dans ma view pour voir le résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {% for titre in Titre%}
    	<tr>
    		<td>{{ titre.titre}}</td>
    	</tr>
    {% endfor %}
    Et la c'est le drame! Je n'ai que le dernier résultât de mon tableau. Avez vous un moyen afin que j'ai chacune de mes cases dans ma view?

    C'est surement un truck tout bête mais je coince complétement là.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    D'une part, tu passes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array('Eleve'=> $eleve , 'Titre'=>$resultLivre)
    à ta vue au lieu de lui passer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array('Eleve'=> $eleve , 'Titre'=>$titreLivre)
    Ensuite, ton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {% for titre in Titre %}
    je le remplacerais par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {% for titreItem in Titre %}
    en tout cas je ne ferais pas confiance à la casse comme tu le fais...

  3. #3
    Membre averti
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : BTS IRIS

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut
    J'ai bien modifié dans mon return et oui maintenant que tu me le dis ça me parait tellement évident.

    Par contre je ne comprends pas ce que fait 'Item'.

    Je l'ai éssayé mais il me dit:

    Item "titre" for "MATHS Term STI" does not exist in LGBBourseLivresBundle:Rachat:facture.html.twig at line 10

    Dois je créé une variable ou un tableau pour y stocké au faire et a mesure de la boucle?

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    titreItem, j'aurais pu l'appeler truc, c'est juste pour ne pas avoir titre et Titre considérés comme 2 variables différentes.

    Je la refais car j'ai oublié un truc au passage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {% for truc in Titre%}
    	<tr>
    		<td>{{ truc.titre}}</td>
    	</tr>
    {% endfor %}

  5. #5
    Membre averti
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : BTS IRIS

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut
    D'accord j'ai compris c'est le nom de la "variable" qui va nous permettre d'aller chercher les informations dans le controller.

    voilà ce que ça donne pour moi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {% for titreLivre in Titre%}
    	<tr>
    		<td>{{ titreLivre.titre}}</td>
    	</tr>
    {% endfor %}
    Mais toujours le même message d’erreur.

    Item "titre" for "MATHS Term STI" does not exist in LGBBourseLivresBundle:Rachat:facture.html.twig at line 10

    Par contre je comprends pas, il me dit qu'il ne trouve pas 'titre' mais il arrive quand même à aller chercher la valeur qui se trouve dans la première case de mon tableau du controller.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi faire un createQuery ? et pourquoi faire un for sur un tableau ? et une autre boucle pour récupérer les résultats ?
    C'est un peu du grand n’importe quoi ...

Discussions similaires

  1. Passer une variable d'un Controller à un View
    Par Alabama-song dans le forum MVC
    Réponses: 2
    Dernier message: 15/09/2011, 10h47
  2. Réponses: 1
    Dernier message: 04/06/2009, 19h45
  3. Grid view user control et reflexion
    Par tom974 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 18/09/2008, 18h32
  4. Architecture Model-View-Controller 2
    Par womannosky dans le forum Langage
    Réponses: 11
    Dernier message: 26/06/2008, 16h55
  5. HTML View Control
    Par loren_evil dans le forum Visual C++
    Réponses: 2
    Dernier message: 08/12/2006, 17h10

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