Verwenden Sie eine ParamConverter
, um ein Objekt zu erhalten, scheint eine "nicht initialisierte" Instanz davon zu geben.ParamConverter Serialisierung nicht initialisiertes Objekt
Das Objekt ist teilweise geladen, dh seine Beziehungen werden nicht aus der Datenbank abgerufen.
Lassen Sie mich ein Beispiel geben:
Article
title
body
comments (Collection of Comment)
Wenn ich ein Controller die Comment
s eines gegebenen Article
möchte ich dies tun würde
/**
* @Route("/article/{id}/comments",
* name="article_comments",
* defaults={"_format": "json"}
*)
* @ParamConverter("article", class="AppBundle:Article")
*/
public function purchaseOrderGetAction(Article $article)
{
return new JsonResponse($article->getComments());
}
Das wird nichts, weil die Article
schicken scheint nicht voll geladen zu sein.
dump($article);
Gibt
DefaultController.php on line 42:
Article {#1186 ▼
-id: 1
-title: "My awesome article"
-body: "Here is the story of..."
-comments: PersistentCollection {#1224 ▼}
-snapshot: []
-owner: Article {#1186}
-association: array:15 [ …15]
-em: EntityManager {#936 …11}
-backRefFieldName: "article"
-typeClass: ClassMetadata {#1213 …}
-isDirty: false
#collection: ArrayCollection {#1225 ▼
-elements: []
}
#initialized: false
}
}
Wie Sie sehen können, gibt es nichts auf dem Feld details
geladen.
Muss ich das gesamte Objekt manuell laden oder gibt es eine Möglichkeit, nur die benötigten comments
aus der Datenbank zu laden?