Ich lerne, API mit symfony zu bauen (mit FOSRestBundle). Ich folge einem französischen Tutorial. Offensichtlich versuche ich zuerst, den Code selbst zu schreiben, aber selbst mit einem Copy/Paste, es hält mich leer JSON-Array, wenn ich eine GET-Anfrage an die entsprechende Route (Rest-api.local/Orte).symfony/FOSRestBundle: leere JSON-Antwort (unter Verwendung des Symfony-verkörperten Serialisierers)
Der Code funktioniert in Ordnung, wenn ich den Code in PHP-Array "Format":
public function getPlacesAction(Request $request)
{
$places = $this->get('doctrine.orm.entity_manager')
->getRepository('AppBundle:Place')
->findAll();
/* @var $places Place[] */
$formatted = [];
foreach ($places as $place) {
$formatted[] = [
'id' => $place->getId(),
'name' => $place->getName(),
'address' => $place->getAddress(),
];
}
return new JsonResponse($formatted);
}
aber dann versuche ich direkt $ Plätze zu serialisiert, die Ansicht Handler von fost Ruhe (in config.yml) mit
fos_rest:
routing_loader:
include_format: false
view:
view_response_listener: true
format_listener:
rules:
- { path: '^/', priorities: ['json'], fallback_format: 'json' }
und meine Funktion in meinem Controller an den folgenden Code zu ändern, erhalte ich meine JSON-Antwort, aber ohne irgendetwas zwischen "{[], [], []}" (und ich habe 3 Einträge in meiner DB) :
public function getPlacesAction(Request $request)
{
$places = $this->get('doctrine.orm.entity_manager')
->getRepository('AppBundle:Place')
->findAll();
/* @var $places Place[] */
return $places;
}
Es ist mein erster Beitrag auf stackoverflow, also hoffe ich meine Frage ist klar, Einen schönen Tag noch.
Welchen Serializer verwenden Sie? Normalerweise haben Serializer zusätzliche Expose von Entity-Ebene, wie in [JMSSerializerBundle] (http://jmyst.com/libs/serializer/master/cookbook/exclusion_strategies) – Jeet