![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Witam,
chciałem zobaczyć jak Symfony2 poradzi sobie jako API i w tym celu chciałem wykorzystać ActionScript3.0 + Symfony2 (PHP) więc mam sobie jakąś aplikację, która wysyła z flasha json ( { id:1 } ) więc flash oczekuje wszystkich kolumn, które należą do ID = 1. Jako z tym nie mam problemu, bo normalnie mogę zrobić to tak:
ale jak to samo zrobić w Symfony2 ?
var_dump zwraca
Ale nijak nie potrafię się po tym ruszyć... EDIT:: Doszedłem do tego, że po zmianie w klasie Userzy.php (entity) z private na public mam dostęp do np print $entities[0]->name; w przeciwnym razie otrzymuję error Cannot access private property SimonMedia\ApiBundle\Entity\Userzy::$name in F:\WORK\labs\Symfony\ApiID\src\SimonMedia\ApiBundle\Controller\DefaultController.php on line 28 Ale chyba taka zmiana nie jest dobra i nie na tym to ma polegać ? Ten post edytował Szymciosek 16.09.2012, 11:06:44 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 10 Dołączył: 16.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tworzysz sobie w repozytorium "Userzy" metodę, która zwraca kolekcję użytkowników jako tablicę.
W kontrolerze przekazujesz zmienną do widoku. Jeśli chcesz używać adnotacji @Template nie zapomnij, żeby w szablonie przekonwertować tą zmienną do json. Możesz też od razu w repozytorium potraktować zwróconą kolekcję json_encode, jak zrobisz zależy od Twojej organizacji kodu. Inna ważna sprawa, to odpowiedni nagłówek w odpowiedzi zwrotnej. Możesz w routingu zdefiniować domyślny parametr, który nazywa się "_format" i wtedy Symfony automatycznie wyśle odpowiedni nagłówek. Możesz też ustawić nagłówek bezpośrednio w kontrolerze manipulując obiektem Response. Nie zapominaj, że kontroler w Symfony powinien zwrócić obiekt Response, a to czy go zwracasz pomagając sobie adnotacjami, czy przez metody pomocnicze kontrolera to sprawa drugorzędna. Nie rozumiem, dlaczego próbujesz dostać się do właściwości obiektu nie używając metod dostępowych. Przecież operujesz na obiektach, wiec po to masz w klasie Entity metody dostępowe (get* i set*), żeby ich używać, a nie bezpośrednio używać prywatnych czy chronionych właściwości. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 20:09 |