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

  1. #1
    Futur Membre du Club
    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
    Points : 9
    Points
    9
    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 éclairé

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    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...
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  3. #3
    Futur Membre du Club
    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
    Points : 9
    Points
    9
    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 éclairé

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    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 %}
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  5. #5
    Futur Membre du Club
    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
    Points : 9
    Points
    9
    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 éminent sénior

    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
    Points : 10 726
    Points
    10 726
    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 ...

  7. #7
    Futur Membre du Club
    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
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    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 ...
    pourquoi faire un createQuery?

    Car avec le repository je n'arrivais pas gérer mes enregistrements dans un tableau.

    et pourquoi faire un for sur un tableau ?

    Car les ids ne sont pas toujours les mêmes suivant l'élève. Et donc il me fallait quelques choses qui ne soit pas écrit en dur.

    C'est un peu du grand n’importe quoi ...

    Je ne suis pas expert! ça ne fait qu'un mois que j'utilise symfony2 et doctrine2. Ils nous sont imposé pour notre projet de fin d'année.

  8. #8
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par YoshV Voir le message
    pourquoi faire un createQuery?

    Car avec le repository je n'arrivais pas gérer mes enregistrements dans un tableau.

    et pourquoi faire un for sur un tableau ?

    Car les ids ne sont pas toujours les mêmes suivant l'élève. Et donc il me fallait quelques choses qui ne soit pas écrit en dur.

    C'est un peu du grand n’importe quoi ...

    Je ne suis pas expert! ça ne fait qu'un mois que j'utilise symfony2 et doctrine2. Ils nous sont imposé pour notre projet de fin d'année.

    c'est de l'ORM c'est faire pour simplifié les choses, tout est en arbre c'est donc inutile de faire des requete puisque les donnée sont déjà dedans

    montre le schéma de tes entite et ton action de controller

  9. #9
    Futur Membre du Club
    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
    Points : 9
    Points
    9
    Par défaut
    Controller:

    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
     public function factureAction()
        {
            //Requete pour trouver l'id, le nom, le prenom de l'élève
        	$queryEleve=$this->getDoctrine()->getEntityManager()->createQuery("SELECT a.ideleve, a.nom,a.prenom FROM LGBBourseLivresBundle:Eleve a WHERE a.ideleve=43");
        	$eleve=$queryEleve->getResult(); // On recupère le resultat de la requete.
     
            //On boucle pour mettre le nom,le prenom, et l'id dans des variables réutilisable par la suite.
        	foreach ($eleve as $subarray) 
        	{
        		$nom=$subarray['nom'];
        		$prenom=$subarray['prenom'];
        		$ideleve=$subarray['ideleve'];
    		}
     
     
            // Requete pour trouver l'id du livre.
            $q=$this->getDoctrine()->getEntityManager()->createQuery("SELECT b.livreIdlivre FROM LGBBourseLivresBundle:EleveHasLivre b WHERE b.eleveIdeleve=43");
            $resultId=$q->getResult();// On recupère le resultat de la requete
     
            // Requete pour compter le nombre de livre que l'élève est cencé avoir en sa possession.
            $qCount=$this->getDoctrine()->getEntityManager()->createQuery("SELECT COUNT(b.livreIdlivre) FROM LGBBourseLivresBundle:EleveHasLivre b WHERE b.eleveIdeleve=43");
            $resultCount=$qCount->getSingleScalarResult();// On récupère le nombre du COUNT
     
            // Pour compteur allant de 0 jusqu'au nombre de livre par pas de 1.
           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.
            }
     
     
            return $this->container->get('templating')->renderResponse('LGBBourseLivresBundle:Rachat:facture.html.twig', array('Eleve'=> $eleve , 'Titre'=>$titreLivre));
        }
    Entity:

    Livre:

    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
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    <?php
     
    namespace LGB\BourseLivresBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * LGB\BourseLivresBundle\Entity\Livre
     *
     * @ORM\Table(name="livre")
     * @ORM\Entity(repositoryClass="LGB\BourseLivresBundle\Entity\LivreRepository")
     */
    class Livre
    {
        /**
         * @var integer $idlivre
         *
         * @ORM\Column(name="idlivre", type="integer", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="IDENTITY")
         */
        private $idlivre;
     
        /**
         * @var string $discipline
         *
         * @ORM\Column(name="discipline", type="string", length=50, nullable=false)
         */
        private $discipline;
     
        /**
         * @var string $titre
         *
         * @ORM\Column(name="titre", type="string", length=100, nullable=false)
         */
        private $titre;
     
        /**
         * @var string $editeur
         *
         * @ORM\Column(name="editeur", type="string", length=50, nullable=false)
         */
        private $editeur;
     
        /**
         * @var string $codeEan
         *
         * @ORM\Column(name="code_ean", type="string", length=20, nullable=false)
         */
        private $codeEan;
     
        /**
         * @var decimal $prixPublic
         *
         * @ORM\Column(name="prix_public", type="decimal", nullable=false)
         */
        private $prixPublic;
     
        /**
         * @var decimal $prixReprise
         *
         * @ORM\Column(name="prix_reprise", type="decimal", nullable=false)
         */
        private $prixReprise;
     
        /**
         * @var decimal $prixVente
         *
         * @ORM\Column(name="prix_vente", type="decimal", nullable=false)
         */
        private $prixVente;
     
        /**
         * @var integer $quantiteTotale
         *
         * @ORM\Column(name="quantite_totale", type="integer", nullable=true)
         */
        private $quantiteTotale;
     
        /**
         * @var integer $quantiteSortie
         *
         * @ORM\Column(name="quantite_sortie", type="integer", nullable=true)
         */
        private $quantiteSortie;
     
        /**
         * @var boolean $plusEdite
         *
         * @ORM\Column(name="plus_edite", type="boolean", nullable=false)
         */
        private $plusEdite;
     
        /**
         * @var boolean $nonRepris
         *
         * @ORM\Column(name="non_repris", type="boolean", nullable=false)
         */
        private $nonRepris;
     
        /**
         * @var Classe
         *
         * @ORM\ManyToMany(targetEntity="Classe", mappedBy="livrelivre")
         */
        private $classeclasse;
     
        public function __construct()
        {
            $this->classeclasse = new \Doctrine\Common\Collections\ArrayCollection();
        }
     
     
        /**
         * Get idlivre
         *
         * @return integer 
         */
        public function getIdlivre()
        {
            return $this->idlivre;
        }
     
        /**
         * Set discipline
         *
         * @param string $discipline
         */
        public function setDiscipline($discipline)
        {
            $this->discipline = $discipline;
        }
     
        /**
         * Get discipline
         *
         * @return string 
         */
        public function getDiscipline()
        {
            return $this->discipline;
        }
     
        /**
         * Set titre
         *
         * @param string $titre
         */
        public function setTitre($titre)
        {
            $this->titre = $titre;
        }
     
        /**
         * Get titre
         *
         * @return string 
         */
        public function getTitre()
        {
            return $this->titre;
        }
     
        /**
         * Set editeur
         *
         * @param string $editeur
         */
        public function setEditeur($editeur)
        {
            $this->editeur = $editeur;
        }
     
        /**
         * Get editeur
         *
         * @return string 
         */
        public function getEditeur()
        {
            return $this->editeur;
        }
     
        /**
         * Set codeEan
         *
         * @param string $codeEan
         */
        public function setCodeEan($codeEan)
        {
            $this->codeEan = $codeEan;
        }
     
        /**
         * Get codeEan
         *
         * @return string 
         */
        public function getCodeEan()
        {
            return $this->codeEan;
        }
     
        /**
         * Set prixPublic
         *
         * @param decimal $prixPublic
         */
        public function setPrixPublic($prixPublic)
        {
            $this->prixPublic = $prixPublic;
        }
     
        /**
         * Get prixPublic
         *
         * @return decimal 
         */
        public function getPrixPublic()
        {
            return $this->prixPublic;
        }
     
        /**
         * Set prixReprise
         *
         * @param decimal $prixReprise
         */
        public function setPrixReprise($prixReprise)
        {
            $this->prixReprise = $prixReprise;
        }
     
        /**
         * Get prixReprise
         *
         * @return decimal 
         */
        public function getPrixReprise()
        {
            return $this->prixReprise;
        }
     
        /**
         * Set prixVente
         *
         * @param decimal $prixVente
         */
        public function setPrixVente($prixVente)
        {
            $this->prixVente = $prixVente;
        }
     
        /**
         * Get prixVente
         *
         * @return decimal 
         */
        public function getPrixVente()
        {
            return $this->prixVente;
        }
     
        /**
         * Set quantiteTotale
         *
         * @param integer $quantiteTotale
         */
        public function setQuantiteTotale($quantiteTotale)
        {
            $this->quantiteTotale = $quantiteTotale;
        }
     
        /**
         * Get quantiteTotale
         *
         * @return integer 
         */
        public function getQuantiteTotale()
        {
            return $this->quantiteTotale;
        }
     
        /**
         * Set quantiteSortie
         *
         * @param integer $quantiteSortie
         */
        public function setQuantiteSortie($quantiteSortie)
        {
            $this->quantiteSortie = $quantiteSortie;
        }
     
        /**
         * Get quantiteSortie
         *
         * @return integer 
         */
        public function getQuantiteSortie()
        {
            return $this->quantiteSortie;
        }
     
        /**
         * Set plusEdite
         *
         * @param boolean $plusEdite
         */
        public function setPlusEdite($plusEdite)
        {
            $this->plusEdite = $plusEdite;
        }
     
        /**
         * Get plusEdite
         *
         * @return boolean 
         */
        public function getPlusEdite()
        {
            return $this->plusEdite;
        }
     
        /**
         * Set nonRepris
         *
         * @param boolean $nonRepris
         */
        public function setNonRepris($nonRepris)
        {
            $this->nonRepris = $nonRepris;
        }
     
        /**
         * Get nonRepris
         *
         * @return boolean 
         */
        public function getNonRepris()
        {
            return $this->nonRepris;
        }
     
        /**
         * Add classeclasse
         *
         * @param LGB\BourseLivresBundle\Entity\Classe $classeclasse
         */
        public function addClasse(\LGB\BourseLivresBundle\Entity\Classe $classeclasse)
        {
            $this->classeclasse[] = $classeclasse;
        }
     
        /**
         * Get classeclasse
         *
         * @return Doctrine\Common\Collections\Collection 
         */
        public function getClasseclasse()
        {
            return $this->classeclasse;
        }
    }
    EleveHasLivre:

    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
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    <?php
     
    namespace LGB\BourseLivresBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * LGB\BourseLivresBundle\Entity\EleveHasLivre
     *
     * @ORM\Table(name="eleve_has_livre")
     * @ORM\Entity(repositoryClass="LGB\BourseLivresBundle\Entity\EleveHasLivreRepository")
     */
    class EleveHasLivre
    {
        /**
         * @var integer $eleveIdeleve
         *
         * @ORM\Column(name="eleve_ideleve", type="integer", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="NONE")
         */
        private $eleveIdeleve;
     
        /**
         * @var integer $livreIdlivre
         *
         * @ORM\Column(name="livre_idlivre", type="integer", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="NONE")
         */
        private $livreIdlivre;
     
        /**
         * @var Eleve
         *
         * @ORM\ManyToOne(targetEntity="Eleve")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="eleve_ideleve", referencedColumnName="ideleve")
         * })
         */
        private $eleveeleve;
     
        /**
         * @var Livre
         *
         * @ORM\ManyToOne(targetEntity="Livre")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="livre_idlivre", referencedColumnName="idlivre")
         * })
         */
        private $livrelivre;
     
        /**
         * @var Statut
         *
         * @ORM\ManyToOne(targetEntity="Statut")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="statut_idstatut", referencedColumnName="idstatut")
         * })
         */
        private $statutstatut;
     
     
     
        /**
         * Set eleveIdeleve
         *
         * @param integer $eleveIdeleve
         */
        public function setEleveIdeleve($eleveIdeleve)
        {
            $this->eleveIdeleve = $eleveIdeleve;
        }
     
        /**
         * Get eleveIdeleve
         *
         * @return integer 
         */
        public function getEleveIdeleve()
        {
            return $this->eleveIdeleve;
        }
     
        /**
         * Set livreIdlivre
         *
         * @param integer $livreIdlivre
         */
        public function setLivreIdlivre($livreIdlivre)
        {
            $this->livreIdlivre = $livreIdlivre;
        }
     
        /**
         * Get livreIdlivre
         *
         * @return integer 
         */
        public function getLivreIdlivre()
        {
            return $this->livreIdlivre;
        }
     
        /**
         * Set eleveeleve
         *
         * @param LGB\BourseLivresBundle\Entity\Eleve $eleveeleve
         */
        public function setEleveeleve(\LGB\BourseLivresBundle\Entity\Eleve $eleveeleve)
        {
            $this->eleveeleve = $eleveeleve;
        }
     
        /**
         * Get eleveeleve
         *
         * @return LGB\BourseLivresBundle\Entity\Eleve 
         */
        public function getEleveeleve()
        {
            return $this->eleveeleve;
        }
     
        /**
         * Set livrelivre
         *
         * @param LGB\BourseLivresBundle\Entity\Livre $livrelivre
         */
        public function setLivrelivre(\LGB\BourseLivresBundle\Entity\Livre $livrelivre)
        {
            $this->livrelivre = $livrelivre;
        }
     
        /**
         * Get livrelivre
         *
         * @return LGB\BourseLivresBundle\Entity\Livre 
         */
        public function getLivrelivre()
        {
            return $this->livrelivre;
        }
     
        /**
         * Set statutstatut
         *
         * @param LGB\BourseLivresBundle\Entity\Statut $statutstatut
         */
        public function setStatutstatut(\LGB\BourseLivresBundle\Entity\Statut $statutstatut)
        {
            $this->statutstatut = $statutstatut;
        }
     
        /**
         * Get statutstatut
         *
         * @return LGB\BourseLivresBundle\Entity\Statut 
         */
        public function getStatutstatut()
        {
            return $this->statutstatut;
        }
    }
    Elève:

    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
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    <?php
     
    namespace LGB\BourseLivresBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
     
    use Symfony\Component\Validator\Constraints as Assert;
     
    /**
     * LGB\BourseLivresBundle\Entity\Eleve
     *
     * @ORM\Table(name="eleve")
     * @ORM\Entity(repositoryClass="LGB\BourseLivresBundle\Entity\EleveRepository")
     */
    class Eleve
    {
        /**
         * @var integer $ideleve
         *
         * @ORM\Column(name="ideleve", type="integer", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="IDENTITY")
         */
        private $ideleve;
     
        /**
         * @var string $nom
         *
         * @ORM\Column(name="nom", type="string", length=30, nullable=false)
         */
        private $nom;
     
        /**
         * @var string $prenom
         * 
         * @ORM\Column(name="prenom", type="string", length=30, nullable=false)
         */
        private $prenom;
     
        /**
         * @var date $dateNaissance
         * 
         * @ORM\Column(name="date_naissance", type="date", nullable=false)
         */
        private $dateNaissance;
     
        /**
         * @var Options
         *
         * @ORM\ManyToMany(targetEntity="Options", inversedBy="eleveeleve")
         * @ORM\JoinTable(name="eleve_has_options",
         *   joinColumns={
         *     @ORM\JoinColumn(name="eleve_ideleve", referencedColumnName="ideleve")
         *   },
         *   inverseJoinColumns={
         *     @ORM\JoinColumn(name="options_idoption", referencedColumnName="idoption")
         *   }
         * )
         */
        private $optionsoption;
     
        /**
         * @var Classe
         *
         * @ORM\ManyToOne(targetEntity="Classe")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="classe_idclasse", referencedColumnName="idclasse")
         * })
         */
        private $classeclasse;
     
        /**
         * @var Parents
         *
         * @ORM\ManyToOne(targetEntity="Parents")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="parent_idparent", referencedColumnName="idparent")
         * })
         */
        private $parentparent;
     
        public function __construct()
        {
            $this->optionsoption = new \Doctrine\Common\Collections\ArrayCollection();
        }
     
     
        /**
         * Get ideleve
         *
         * @return integer 
         */
        public function getIdeleve()
        {
            return $this->ideleve;
        }
     
        /**
         * Set nom
         *
         * @param string $nom
         */
        public function setNom($nom)
        {
            $this->nom = $nom;
        }
     
        /**
         * Get nom
         *
         * @return string 
         */
        public function getNom()
        {
            return $this->nom;
        }
     
        /**
         * Set prenom
         *
         * @param string $prenom
         */
        public function setPrenom($prenom)
        {
            $this->prenom = $prenom;
        }
     
        /**
         * Get prenom
         *
         * @return string 
         */
        public function getPrenom()
        {
            return $this->prenom;
        }
     
        /**
         * Set dateNaissance
         *
         * @param date $dateNaissance
         */
        public function setDateNaissance($dateNaissance)
        {
            $this->dateNaissance = $dateNaissance;
        }
     
        /**
         * Get dateNaissance
         *
         * @return date 
         */
        public function getDateNaissance()
        {
            return $this->dateNaissance;
        }
     
        /**
         * Add optionsoption
         *
         * @param LGB\BourseLivresBundle\Entity\Options $optionsoption
         */
        public function addOptions(\LGB\BourseLivresBundle\Entity\Options $optionsoption)
        {
            $this->optionsoption[] = $optionsoption;
        }
     
        /**
         * Get optionsoption
         *
         * @return Doctrine\Common\Collections\Collection 
         */
        public function getOptionsoption()
        {
            return $this->optionsoption;
        }
     
        /**
         * Set classeclasse
         *
         * @param LGB\BourseLivresBundle\Entity\Classe $classeclasse
         */
        public function setClasseclasse(\LGB\BourseLivresBundle\Entity\Classe $classeclasse)
        {
            $this->classeclasse = $classeclasse;
        }
     
        /**
         * Get classeclasse
         *
         * @return LGB\BourseLivresBundle\Entity\Classe 
         */
        public function getClasseclasse()
        {
            return $this->classeclasse;
        }
     
        /**
         * Set parentparent
         *
         * @param LGB\BourseLivresBundle\Entity\Parents $parentparent
         */
        public function setParentparent(\LGB\BourseLivresBundle\Entity\Parents $parentparent)
        {
            $this->parentparent = $parentparent;
        }
     
        /**
         * Get parentparent
         *
         * @return LGB\BourseLivresBundle\Entity\Parents 
         */
        public function getParentparent()
        {
            return $this->parentparent;
        }
    }
    Voilà.

    Merci pour votre aide, sachant que même nos profs ne gère pas le symfony2 et nous lance dedans donc on est un peut livré à nous même où on avait 2-3 semaines afin de maitrisé symfony.


  10. #10
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    YoshV et cbtraize42
    Franchement les gars, on est pas la pour faire vos devoirs, vous feriez mieux de travailler ensemble, que de perdre du temps.

    http://www.developpez.net/forums/d11...ntroller-view/
    http://www.developpez.net/forums/d11...y2/entity-sql/


    Bref, si j'ai bien compris les Eleves on plusieurs Livres et dans le template faut juste afficher tout les livres d'un élève suivant son id ?

  11. #11
    Futur Membre du Club
    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
    Points : 9
    Points
    9
    Par défaut
    Ce n'est pas réellement un devoir. Mais un projet de fin d'année à délivré a un industriel.

    De plus ce que je recherche n'est pas les réponses toutes faites. Mais au moins des explications claires et précises choses que l'on ne peut pas trouver au près de nos profs car il ne maitrise pas le sujet. C'est pourquoi faire les tutoriels c'est bien certes mais on ne trouve pas tout. Et puis nous avons jusqu’à début avril pour finir la partie que nous avons a faire. Donc le temps est compté aussi.

    Donc pour bien expliquer le sujet du problème je vais placer le contexte:

    Je passe la base de donnée car on a les entity ci dessus.

    Je dois matérialisé un facture d'un avoir qui doit comprendre:
    -Le nom & prénom de l'élève.
    -Ses livres correspondants.

    C'est pourquoi je cherche à avoir chacun de ces livres dans un tableau qui me permettra de les positionner comme je le souhaite.

  12. #12
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    Il te manque ton mappage pour le ManytoMany

    à la fin dans ton controller t'as juste a faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /**
     * @Route("/facture/{id}", name="facture")
     * @Template()
     */
    public function factureAction($id)
    {
        $em = $this->getDoctrine()->getEntityManager()
        $eleve = $em->find('LGBBourseLivresBundle:Eleve', $id);
     
        return array('eleve' => $eleve);
    }
    t'as pas besoin non plus de faire un renderResponse, suffit juste de mettre l'annotation @Template()

    dans ta vue tu feras

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <h3>{{ eleve.nom }} {{ eleve.prenom }}</h3>
     
    <ul>
     
    {% for livre in eleve.livres %}
     
        <li>{{ livre.titre }}</li>
     
    {% endfor %}
     
    </ul>
    et c'est tout

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Merci de me citer je suis célèbre !


    Citation Envoyé par stealth35 Voir le message
    YoshV et cbtraize42
    Franchement les gars, on est pas la pour faire vos devoirs, vous feriez mieux de travailler ensemble, que de perdre du temps.

    http://www.developpez.net/forums/d11...ntroller-view/
    http://www.developpez.net/forums/d11...y2/entity-sql/


    Bref, si j'ai bien compris les Eleves on plusieurs Livres et dans le template faut juste afficher tout les livres d'un élève suivant son id ?

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