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 :

Inclure un morceau de template via le controlleur


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Par défaut Inclure un morceau de template via le controlleur
    Bonjour,
    Je travaille sur une recherche instantanée, j'ai réussi à la faire seulement l'affichage de mes résultats je le fais via le contrôleur à travers des echo(), ce qui n'est pas très propre et ce qui ne respecte pas l'architecture MVC. Mon idée est la suivante, au lieu des multiples echo() que je fais dans le contrôleur, est-ce possible de créer une vue twig, avec un div , ce div est à répéter autant de fois que nécessaire, en fonction du nombre de résultats trouvés ?
    Si vous avez une autre idée de faire je suis preneur, l'important c'est d'améliorer mon code que voici:

    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
     
     
        /**
         * Résultat instantané des tâches recherché.
         *
         * @Route("/ifind", name="ifind")
         */
         public function ifindAction(){
     
            $request = $this->getRequest();
     
            $em = $this->getDoctrine()->getEntityManager();
            if($request->isXmlHttpRequest()){
                $expression ='';
                $expression = $request->get('mc');
                if($expression != ''){
                    $taches = $em->getRepository('TacheBundle:Tache')->isearch($expression);
                    $entreprises = $em->getRepository('EntrepriseBundle:Entreprise')->isearch($expression);
                    //$dossiers = $em->getRepository('DossierBundle:Dossier')->isearch($expression);
                    //$sites = $em->getRepository('NetBundle:site')->isearch($expression);
                    //$sources = $em->getRepository('NetBundle:Source')->isearch($expression);
                    //$soumissions = $em->getRepository('NetBundle:Soumission')->isearch($expression);
                    //$data_taches = array();
                    //$data_entreprises = array();
                    $i = 0;
     
                    if($taches){
                        echo "Tâches </br>";
                        foreach ($taches as $tache) {
                        $data_taches[$i]['id'] = $tache->getId();
                        $data_taches[$i]['nom'] = $tache->getNom();
                        $data_taches[$i]['priorite'] = $tache->getPriorite();
                        $data_taches[$i]['entreprise'] = $tache->getEntreprise();
                        $data_taches[$i]['personne'] = $tache->getPersonne();
                        $data_taches[$i]['commentaire'] = $tache->getCommentaire();                    
                        echo "<br/>";
    /*Au lieu de faire des echos, j'aimerais inclure un bout de code qui affiche le résultat grace à la boucle, dans PHP Native, j'aurais fait include('MON_BOUT_DE_CODE')*/
                        echo $data_taches[$i]['nom'];
                        echo $data_taches[$i]['priorite'];
                        //echo $data_taches[$i]['date'];
                        //echo $data_taches[$i]['heure_debut'];
                        //echo $data_taches[$i]['heure_fin'];
                        echo $data_taches[$i]['entreprise'];
                        echo $data_taches[$i]['personne'];
                        echo $data_taches[$i]['commentaire'];
                        $i++;
                        }
                    }
     
     
                    return new Response();    
                }
            }
            return new Response("Erreur : pas de requête Ajax");       
        }
    Merci énormément et d'avance pour l'aide

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Par défaut
    Bonjour y0ussef,
    Tu peux créer un twig et y passé tes données et le resultat HTML de ce twig sera recuperable avec renderView(), voici un exemple d'utilisation :

    $body = $this->renderView('SfTutorialBundle:User:emailNotif.html.twig', array('nom' => $nom,'prenom'=>$prenom));

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/01/2013, 10h11
  2. Restreindre le paramètre d'un Template via Heritage
    Par SamAgace dans le forum Langage
    Réponses: 10
    Dernier message: 03/11/2010, 11h43
  3. Réponses: 2
    Dernier message: 01/09/2008, 17h07
  4. Réponses: 4
    Dernier message: 20/07/2007, 03h49
  5. [JSP] [include] inclure un morceau de code
    Par viena dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/01/2005, 11h51

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