• 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

42 Warsaw Coding Academy
0 głosów
450 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ź 843 wizyt
pytanie zadane 15 września 2021 w PHP przez Grzegorz Mikina Dyskutant (8,060 p.)
0 głosów
0 odpowiedzi 370 wizyt
pytanie zadane 3 maja 2020 w PHP przez XiverKi Bywalec (2,050 p.)
0 głosów
1 odpowiedź 765 wizyt
pytanie zadane 15 października 2016 w PHP przez Captivity Obywatel (1,030 p.)

93,398 zapytań

142,390 odpowiedzi

322,576 komentarzy

62,756 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...