Ich verwende FOSRestBundle in Symfony2, um einen REST-Service bereitzustellen.Symfony2 FOSRestBundle Return-Entity-Felder im Formular
Derzeit gibt mein Controller eine Entität zurück, wenn eine Ressource angefordert wird (z. B. /users/40
). Das Frontend enthält ein Formular, das es erlaubt, diese Ressource zu manipulieren und mit PUT zurückzusenden. Der Controller verwendet ein Formular, um die Daten zu verarbeiten.
Mein Problem ist, dass das Formular weniger Felder als die gesamte Entität hat (id
und password_hash
sind gute Beispiele). Ich kam zu dem Schluss, dass das Senden der gesamten Entität an den Kunden eine schlechte Idee ist. Stattdessen möchte ich, dass FOSRestBundle nur die Entitätsfelder sendet, die im Formular verfügbar sind.
So einfach habe ich versucht:
return $this->createForm(UserType::class, $entity);
Die JSON-Struktur von dem Server von FOSRestBundle zurück sieht sehr gut aus. Aber leider enthält es keine Werte.
Natürlich ist es nicht - die Form ist nicht gebunden. Und an diesem Punkt macht es keinen Sinn, Daten zu binden. Daher muss ich eine andere Lösung finden.
Dieser Anwendungsfall wird in meinen Anwendungen sehr häufig vorkommen. Ich frage mich also, ob es keinen einfachen/standardmäßigen Weg dafür gibt.
(PS I verwenden Angular JS im Frontend. Lege ich einfach die Entität Ressource JSON den Umfang und die symfony Formularvorlagen Formularfelder zu erzeugen, die automatisch auf die richtige Objekt des Umfangs gebunden sind)