• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Symfony - Pobieranie danych w formie JSON

0 głosów
538 wizyt
pytanie zadane 4 czerwca 2016 w PHP przez patryk23 Początkujący (290 p.)

Witam,

Mam problem, wygenerowałem sobie CRUD i mam problem z wypisaniem danych za pomocą json response:
to moja metoda:

 

public function indexAction()
    {
        $em = $this->getDoctrine()->getManager();

        $posts = $em->getRepository('AppBundle:Post')->findAll();

        return new JsonResponse([
            'posts' => $posts
        ]);
    }

Dodałem sobie wcześniej to:
 

use Symfony\Component\HttpFoundation\JsonResponse;

dodałem sobie post i próbuje wyświetlić tablicę ze wszystkimi ale otrzymuję pustego jsona w takiej formie:
 

{
    "posts": [
        {}
    ]
}

Może mnie ktoś nakierować jak mogę to zrobić? Nie chcę wrzucać tu żadnych bundli. Pozdrawiam i proszę o pomoc

1 odpowiedź

+1 głos
odpowiedź 4 czerwca 2016 przez SyntaxError Pasjonat (17,170 p.)
edycja 4 czerwca 2016 przez SyntaxError
Potrzebujesz serializera. Z repozytorium dostajesz obiekt/y, a żeby zrobić jsona potrzebujesz tablicy.

Zobacz to: http://symfony.com/doc/current/components/serializer.html

A jeśli chcesz czegoś fajniejszego to: http://jmsyst.com/bundles/JMSSerializerBundle
komentarz 4 czerwca 2016 przez patryk23 Początkujący (290 p.)
    public function indexAction()
    {
        $em = $this->getDoctrine()->getManager();

        $posts = $em->getRepository('AppBundle:Post')->findAll();

        $serializer = new Serializer(
            array(new ObjectNormalizer()),
            array(new JsonEncoder())
        );

        return new JsonResponse($serializer->serialize($posts, 'json'));
    }

Hej, dzięki za podpowiedź, mam teraz coś takiego ale mam taki problem że wyrzuca mi dane w formie "[{}]", a chciałbym czystego jsona, mógłbym prosić jeszcze o podpowiedź?

komentarz 4 czerwca 2016 przez SyntaxError Pasjonat (17,170 p.)
Łooo tak to nie. xd Zrób nowego zwykłego Response może i ustaw mu tylko w headers odpowiedni Content-Type, żeby było wiadomo, że to json. A na koniec zwróc go z kontrolera. Teraz to zrobiłeś incepcje troszeczke, bo zwracasz jsona w jsonie. :D

Podobne pytania

0 głosów
1 odpowiedź 934 wizyt
pytanie zadane 15 września 2021 w PHP przez Grzegorz Mikina Dyskutant (8,060 p.)
0 głosów
0 odpowiedzi 403 wizyt
pytanie zadane 3 maja 2020 w PHP przez XiverKi Bywalec (2,050 p.)
0 głosów
1 odpowiedź 941 wizyt
pytanie zadane 15 października 2016 w PHP przez Captivity Obywatel (1,030 p.)

93,631 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...