Zum Inhalt springen

[Frage] ObjectStorage gibt anstatt Object einen HashCode zurück ?!

Erstellt am 6. Februar 2014 · 3 Antworten · letzte Antwort am 7. Februar 2014

Tags: TYPO3 4.x, Frage

Unbekannter Benutzer ·

Moin Moin,

ich erweitere gerade eine Extension und bin dabei auf ein bisher unbekanntes Phänomen gestoßen:

Ich habe ein Model "Cluster", das als Attribute zwei Object Storages mit "ColorCombinations" besitzt.
Wenn ich diese Ausgeben will, zeigt mir die debug-Anzeige den Spaß im Anhang.

Mein Problem ist nun:
Warum wird mir statt dem ObjectStorage dieser HashCode angezeigt ( Das Object das dann auf den Hashcode folgt ist das richtig zugeordnete Objekt) und wie kann ich verhindern, dass das passiert ? Ich hätte natürlich gerne direkt das entsprechende Objekt, und nicht den Hashcode davor.

Hat jemand eine Idee, woran es generell liegen kann, bzw. wo ich nach einem Fehler suchen muss ?

Vielen Dank im voraus 🙁

debug.jpg

tingeltockrock ·

Das einfachste wäre hier mit einer foreach über den ObjectStorage zu laufen. Im Grunde genommen ist das ObjectStorage eine Art von Array, sowei ich weis kannst du dieses auch mit ->toArray() in ein Array umwandeln. Der Hashcode ist sowas wie der Key in einem Array. Direkt auf das Objet zugreifen kann man dann logischer weise nicht. Versuch mal in fluid sowas wie

{storage.0.property}

vince · · Beste Antwort

hallo,

in einer PHP-Schleife kann das ObjectStorage-Objekt z.B. so durchlaufen werden:

//$list enthält das ObjectStorage-Object
$list->rewind();
while($list->valid()){
 $dein_model_objekt = $list->current();
//irgendetwas damit machen.....
 $list->next(); 
}

mehr dazu hier:
http://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_object_storage.html

Oder, wie vorher gepostet: im fluid-template kann das ObjectStorage auch angezeigt werden (auch mit Schleife).

Gruß,
Vince

Unbekannter Benutzer ·

Hi,
Danke, da hätte ich auch selbst drauf kommen können... Einfach Schleife drüber laufen funktioniert bestens. Ich war wohl nur verwirrt, weil ich diese Hashes in meinen anderen Extensions so noch nicht gesehen habe.

Danke euch beiden.