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 :

Lecture dump twig pour récupérer les valeurs


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Lecture dump twig pour récupérer les valeurs
    Bonjour,

    J'ai fait une requête comme ceux-ci :
    $sReq=$this->createQueryBuilder('enstrt');
    $sReq->leftJoin('enstrt.uprocenstrt','comp')
    ->leftJoin('comp.uproc_id','comp2')
    ->addSelect('comp,comp2')
    ->where('enstrt.enstrt_id= :id')
    ->setParameter('id', $p_iIdEnsTrtSens);

    return $sReq->getQuery()->getResult();

    qui me retourne ceux-ci sous phpmyadmin :

    Nom : Requete.png
Affichages : 371
Taille : 10,3 Ko

    Dans mon controller, je passe le résultat au twig via la variable $tenstrtuproc qui de type tableau.

    Losrque je fais un dump de cette variable dans mon twig, il me retourne ceci :


    array (size=1)
    0 =>
    object(Intranet\ProProductionBundle\Modules\StoSuiviStocksBundle\Entity\StoEnsTrt)[1286]
    private 'typefluxenstrt' =>
    object(Doctrine\ORM\PersistentCollection)[1292]
    private 'snapshot' =>
    array (size=0)
    ...
    private 'owner' =>
    &object(Intranet\ProProductionBundle\Modules\StoSuiviStocksBundle\Entity\StoEnsTrt)[1286]
    private 'association' =>
    array (size=19)
    ...
    private 'em' =>
    object(Doctrine\ORM\EntityManager)[1239]
    ...
    private 'backRefFieldName' => string 'enstrttypeflux' (length=14)
    private 'typeClass' =>
    object(Doctrine\ORM\Mapping\ClassMetadata)[1287]
    ...
    private 'isDirty' => boolean false
    private 'initialized' => boolean false
    private 'coll' =>
    object(Doctrine\Common\Collections\ArrayCollection)[1308]
    ...
    private 'uprocenstrt' =>
    object(Doctrine\ORM\PersistentCollection)[1317]
    private 'snapshot' =>
    array (size=2)
    ...
    private 'owner' =>
    &object(Intranet\ProProductionBundle\Modules\StoSuiviStocksBundle\Entity\StoEnsTrt)[1286]
    private 'association' =>
    array (size=16)
    ...
    private 'em' =>
    object(Doctrine\ORM\EntityManager)[1239]
    ...
    private 'backRefFieldName' => string 'enstrt_id' (length=9)
    private 'typeClass' =>
    object(Doctrine\ORM\Mapping\ClassMetadata)[1309]
    ...
    private 'isDirty' => boolean false
    private 'initialized' => boolean true
    private 'coll' =>
    object(Doctrine\Common\Collections\ArrayCollection)[1327]
    ...
    private 'lesens' =>
    object(Proxies\__CG__\Intranet\ProProductionBundle\Modules\StoSuiviStocksBundle\Entity\StoSensTrt)[1351]
    private '_entityPersister' =>
    object(Doctrine\ORM\Persisters\BasicEntityPersister)[1350]
    ...
    private '_identifier' =>
    array (size=1)
    ...
    public '__isInitialized__' => boolean true
    private 'Lenstrt' (Intranet\ProProductionBundle\Modules\StoSuiviStocksBundle\Entity\StoSensTrt) =>
    object(Doctrine\ORM\PersistentCollection)[1343]
    ...
    private 'sens_id' (Intranet\ProProductionBundle\Modules\StoSuiviStocksBundle\Entity\StoSensTrt) => int 3
    private 'sens_nom' (Intranet\ProProductionBundle\Modules\StoSuiviStocksBundle\Entity\StoSensTrt) => string 'Sortant' (length=7)
    private 'enstrt_id' => int 39
    private 'enstrt_nom' => string 'test_mbo' (length=8)
    private 'enstrt_code' => string 'TEST_MBO' (length=8)



    J'arrive à récupérer les valeurs de enstrt_id, enstrt_nom et enstrt_code , tout ce qui est lesens mais pas ce qu'il y a dans uprocenstrt . Lorsque je fais un dump, il me répond :

    CRITICAL - Twig_Error_Runtime: Method "uprocenstrt" for object "Intranet\ProProductionBundle\Modules\StoSuiviStocksBundle\Entity\StoEnsTrt" does not exist in "StoSuiviStocksBundle:EnsTrt:view.html.twig" at line 33 (uncaught exception) at C:\Developpement\wamp\www\Intranet_tronc\app\cache\dev\classes.php line 9445


    Voici ce que j'ai mis dans le TWIG :
    {% for enstrtuproc in tenstrtuproc %}
    {{dump(enstrtuproc.uprocenstrt)}}
    {% endfor %}

    Pouvez-vous me dire comment je parcours l'objet uprocenstrt ?

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Soit tu déclares uprocenstrt public, soit tu crées un getter getUprocenstrt().

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci pour cette réponse très utile.
    J'ai effectivement oublié de généré les setter et getter...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    OK, maintenant le dump fonctionne sauf que maintenant c'est encore plus illisible qu'avant. Où sont mes valeurs ?
    Comment je les obtiens ?

    Voici le résultat du dump :
    dump.pdf

    Merci d'avance pour l'aide.

  5. #5
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Ca dépend de ce que tu cherches comme valeur. En dumpant des graphes d'objets entier tu vas effectivement tomber sur un dump assez imbuvable.

    Si tu ne vois pas l'intégralité de la hiérarchie, c'est pour ménager ton browser et éviter qu'il crache comme un vieil étron (beaucoup de devs qui bossent avec Doctrine ont déjà expérimenté le var_dump foireux qui fait planter ton navigateur).

    Pour voir les valeurs de ta collection uprocenstrt, fais ton dump dans le contrôleur pour commencer, et ensuite je te suggère d'utiliser la méthode \Doctrine\Common\Util\Debug::dump() plutôt que le var_dump classique (pour éviter le problème cité au dessus).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // $enstrtuprocArray à remplacer par la variable stockant le retour de ton query builder.
    foreach ($enstrtuprocArray as $enstrtuproc) {
        \Doctrine\Common\Util\Debug::dump($enstrtuproc->getUprocenstrt());
    }
    Exécute ça et vois déjà si le résultat te convient d'avantage. A la méthode dump() tu peux ajouter un deuxième paramètre (optionnel) qui correspond à la "profondeur" du dump (par défaut il est à 2).

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup de ton aide.

    Finalement, j'ai allégé la requête. Le dump est du coup beaucoup plus compréhensible.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/08/2009, 13h43
  2. Réponses: 7
    Dernier message: 08/07/2009, 14h15
  3. Réponses: 3
    Dernier message: 25/09/2008, 10h26
  4. récupérer les valeurs de 2 listes pour aller vers 1 lien
    Par samia13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2007, 02h30
  5. Réponses: 1
    Dernier message: 18/04/2007, 06h05

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