• 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

Object Storage Arubacloud
0 głosów
383 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ź 478 wizyt
pytanie zadane 15 września 2021 w PHP przez Grzegorz Mikina Dyskutant (8,060 p.)
0 głosów
0 odpowiedzi 251 wizyt
pytanie zadane 3 maja 2020 w PHP przez XiverKi Bywalec (2,050 p.)
0 głosów
1 odpowiedź 307 wizyt
pytanie zadane 15 października 2016 w PHP przez Captivity Obywatel (1,030 p.)

92,568 zapytań

141,422 odpowiedzi

319,637 komentarzy

61,956 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...