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 :

jsonEncode: getArrayResult retourne clé avec crochet au lieu de double quote


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 74
    Par défaut jsonEncode: getArrayResult retourne clé avec crochet au lieu de double quote
    Bonjour,

    J'ai besoin de créer un fichier json à partir d'une entité. Lorsque j'encode le tableau retourné, les clés sont entre crochets et sont transformées en caractères spéciaux => inexploitable dans javascript.

    Pour info, j'utilise renderView dans le controller pour enlever le header suivant dans le fichier final:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HTTP/1.0 200 OK Cache-Control: no-cache Date: xxxx
    J'ai essayé d'utiliser une JsonResponse mais ce header réapparait.

    Dans mon 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
    public function chargementEventAction()
        {
     
              $events = $this->getDoctrine()
                             ->getManager()
                           ->getRepository('LdbPlanningBundle:EventEntity')
                           ->findAllArrayEvents();
     
     
            $response = new Response();
            $response->headers->set('Content-Type', 'application/json');
     
            $response->setContent($this->renderView('LdbPlanningBundle:planner:planning.html.twig', array('response' => json_encode($events))));
            $response->headers->set('Content-Type', 'text/html');
            return $response;
     
        }
    Dans mon repository:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function findAllArrayEvents()
     
        {
     
            return $this
                ->createQueryBuilder('a')
                ->getQuery()
                ->getArrayResult()
            ;
     
        }
    Comment cela se fait-il?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 74
    Par défaut
    J'ai passé plusieurs heures² à chercher dans la mauvaise direction.
    Le fichier retourné était bien dans le bon format (me suis fait avoir avec le rendu de print_r() ).

    Le fichier était inexploitable car j'utilise twig dans mes vues et je n'ai pas appliqué la fonction raw pour éviter un traitement: {{ variable | raw }}

    J'ai le réflexe pour une variable qui rend du html et pour du json, je me suis loupé en beauté.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recuperation de checkbox et nommage avec crochet
    Par arnogb69 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/11/2008, 09h12
  2. envoi mailto avec word au lieu de outlook express
    Par calitom dans le forum Outlook
    Réponses: 1
    Dernier message: 15/08/2008, 23h57
  3. Réponses: 2
    Dernier message: 07/04/2007, 11h29
  4. this.form retourne undefined avec <a>
    Par Tchupacabra dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/03/2007, 09h51
  5. retourner un type client o lieu d'un ResultSet
    Par LeXo dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/07/2006, 11h16

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