Doctrine 1.2 Hydrat Methode - Array zu Modellobjekt

8

Ich habe ein kleines Problem mit Doctrine model hydrate() method. Ich verwende diese Methode, um ein Objekt eines Betonmodells aus einem gegebenen Array wie folgt zu hydratisieren:

%Vor%

Alles funktioniert perfekt, wenn Sie einfache Objekte mit verschachtelten Untermodellen hydratisieren. Jetzt ist das Problem, ich muss (mit dieser Methode) ein Objekt hydratisieren, das verschachtelte Objekte hat (und einige von ihnen haben auch verschachtelte Objekte).

Wenn ich HYDRATE_RECORD verwenden würde, wäre das in Ordnung, aber alle Datensätze aus der Abfrage würden als Objekte zurückgegeben, was mehr Speicherverbrauch bedeutet. Deshalb benutze ich HYDRATE_ARRAY und hydratiere auf Wunsch dieses konkrete Array zu einem Objekt.

Nehmen wir an, ich ein Modell A, die Modelle AB, AC (mit ein bis viele), AD und AC hat eine weitere verschachtelte Modell ACE verschachtelt ist. Nach print_r des A-Arrays konnten wir diese Struktur sehen:

%Vor%

Normalerweise würde ich nach der Verwendung von Hydrat annehmen, dass dies mein Objekt wäre:

%Vor%

Aber statt dessen bekomme ich diese Struktur:

%Vor%

Also wurde nur das Hauptmodell in ein Objekt konvertiert. Wissen Sie, wie alle verschachtelten Modellarrays in Objekte wie das angenommene Ergebnis konvertiert werden können?

Und nein, ich kann nicht verwenden HYDRATE_RECORD , wenn die Abfrage der DB.

    
shadyyx 19.09.2012, 14:55
quelle

2 Antworten

1

Durch die Dokumentation stöbern, wenn man auf das .

Haben Sie fromArray anstelle von hydrate versucht?

    
jaudette 24.11.2012, 23:54
quelle
0

Ich versuche, dies nach bestem Wissen meiner Lehre zu beantworten, was nicht viel ist, weil ich mich nie direkt mit der Flüssigkeitszufuhr befasst habe.

Das Problem bei der Verwendung eines Arrays als Hydrationsmethode besteht darin, dass Sie grundsätzlich alle Metadaten verlieren, die der ursprünglichen Abfrage zugeordnet wurden, vor allem die Tabellennamen.

Eine Lösung könnte darin bestehen, Ihre eigene Hydrationsmethode zu schreiben, die das Array zurück in Objekte konvertiert.

    
Ja͢ck 28.09.2012 05:38
quelle

Tags und Links