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 :

Affichage résultat requête SQL avec Twig


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Points : 3
    Points
    3
    Par défaut Affichage résultat requête SQL avec Twig
    Bonjour,

    Tout d'abord désolé si je ne suis pas dans la bonne section, je n'en est pas trouvé d'adaptée à mon problème.

    Je développe une application sous Silex en utilisant Doctrine et Twig.

    J'ai une seule route avec une requête SQL qui récupère dans une seule table certaines données. Juste après la requête SQL lorsque j'affiche le résultat avec un printr, tout s'affiche correctement, je récupère bien toutes les données souhaitées.

    Le problème se passe une fois dans la vue, j'accède et j'affiche tous les champs sauf un qui n'affiche rien -> "description"

    Voici les deux parties de mon code : celle coté "controlleur" et l'autre coté "vue" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $app->get('/', function () use($app){
        $sql = "SELECT * FROM site";
        $post = $app['db']->fetchAll($sql);
        print_r($post);
        return $app['twig']->render('index.html.twig', array("site" => $post));
     
    })->bind('index');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {% for elem in site %}
        <h4>{{ elem.titre }}</h4>
        <ul>
            <li>Type : {{ elem.type }}</li>
            <li>Description : {{ elem.description }}</li>
            <li>Statut : {% if elem.statut == 1 %}en ligne{% else %}hors ligne{% endif %}</li>
            <li>Tags : {{ elem.keyword }}</li>
            <li><a class="btn btn-default" href="{{ elem.site_url }}">Lien</a></li>
        </ul>
    {% endfor %}
    Donc pour résumer, à partir du controller, tout s'affiche; une fois dans la vue tout s'affiche sauf le champ "description".

    Si vous avez des idées je suis preneur, je ne comprends vraiment pas ce qui cloche !

    Cordialement.

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    yoooo maaaan,


    dans twig essais ça pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {{ dump(elem.description) }}
    et


  3. #3
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Points : 3
    Points
    3
    Par défaut
    J'ai essayé les deux, rien ne s'affiche.

    Pourtant j'ai bien activé dump il me semble :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $twig = new Twig_Environment($loader, array(
        'debug' => true,
        // ...
    ));
    $twig->addExtension(new Twig_Extension_Debug());

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Points : 3
    Points
    3
    Par défaut
    J'ai dejà ça en plus de la connexion à la BDD que je ne met pas :

    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
    require_once __DIR__.'/../vendor/autoload.php';
     
    $app = new Silex\Application();
     
    //Pour se mettre en mode dev, activation du debugger de symfony
    $app["debug"] = true;
     
    //Registering Twig
    $app->register(new Silex\Provider\TwigServiceProvider(), array(
        'twig.path' => __DIR__.'/views',
    ));
     
    $twig = new Twig_Environment($loader, array(
        'debug' => true,
        // ...
    ));
    $twig->addExtension(new Twig_Extension_Debug());

  5. #5
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    rien ne s'affiche ?

    donc c'est le passage de aleurs entre le controleur et la vue, je n connais pas Sylex pour t'aider

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 168
    Points : 219
    Points
    219
    Par défaut
    Si tu utilises le service provider tu n'as pas besoin de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $twig = new Twig_Environment($loader, array(
        'debug' => true,
        // ...
    ));
    $twig->addExtension(new Twig_Extension_Debug());
    et tu fais des render avec $app['twig'] ;

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Points : 3
    Points
    3
    Par défaut
    Je l'ai retiré du coup.

    J'ai essayé de faire une requete SQL juste en récupérant le champ description, et c'est vraiment lui qui pose problème, le printr dans le controlleur affiche mes deux lignes de résultats, rien ne s'affiche dans la view.

  8. #8
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    pour tester dans le controlleur fais un new Element()
    set differentes valaeurs dont setDescription(...)
    etc...


    et résultat dans la vue ?

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Points : 3
    Points
    3
    Par défaut
    Bon je crois que j'ai isolé le problème :

    J'ai modifier le type de la colonne "description" en testant plusieurs choses : int, text, pour revenir à varchar (type de base). Le contenu dans la vue s'affichait bien. Il ne s'affichait plus quand je mettais dans le champ description un caractères avec un accent genre "é". Là c'est tout le contenu de cellule en question qui ne s'affiche plus. Pourtant le champ description est bien en utf8_unicode_ci.

    Du coup je ne vois pas vraiment comment corriger cela. Je ne pense pas que cela vienne de phpstorm , l'éditeur que j'utilise, puisque sur les autres pages et sur cette même page également j'affiche des "é" sans problème. L'encodage est en plus bien réglé sur utf-8.

    EDIT : en ajoutant le filtre "raw" comme ceci : {{ elem.description | raw }} les données s'affichent, mais cette fois si j'ai des caractères "123fdfd�" dès qu'il y a un accent. Je précise que l'accent je l'avais placé à la place du "?". Bon il y a du progrès, j'arrive à afficher les données mais les accents font de la résistance.

  10. #10
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,
    Dans la config de ton doctrine provider as tu mis l'option charset a utf-8
    http://silex.sensiolabs.org/doc/providers/doctrine.html

  11. #11
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Points : 3
    Points
    3
    Par défaut
    Oui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $app->register(new Silex\Provider\DoctrineServiceProvider(), array(
        'db.options' => array(
            'driver'   => 'pdo_mysql',
            'dbname'    => '****',
            'host'      => 'localhost',
            'user'      =>  '****',
            'password'  => '*****',
            'charset'   => 'utf8'
        ),
    ));

  12. #12
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Points : 3
    Points
    3
    Par défaut
    Je me permets de up mon post, j'ai toujours besoin d'aide pour mon problème si quelqu'un a une solution

Discussions similaires

  1. [AJAX] Afficher résultat requête SQL avec ajax
    Par Kevfou dans le forum AJAX
    Réponses: 2
    Dernier message: 01/11/2011, 16h54
  2. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  3. Affichage résultat requête SQL
    Par Shankara dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2010, 21h21
  4. Réponses: 2
    Dernier message: 07/02/2008, 11h45
  5. [SQL] Affichage résultat requête dans un tableau, bouton affichage page
    Par megapacman dans le forum PHP & Base de données
    Réponses: 35
    Dernier message: 18/05/2006, 16h42

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