Zum Inhalt springen

Fluid: f:for each erzeugt Fehler Cannot cast object of type "Tx_Extbase_Persistence_ObjectStorage" to string?

Erstellt am 30. November 2011 · 1 Antwort · letzte Antwort am 1. Dezember 2011

Tags: Fluid, Frage

typonewbe ·

Hallo,

ich bin gerade etwas verwundert.

Meine kleine mini Extension erweitert die fe_users um mehrere Objekte (PhoneNumbers,FaxNumbers).
Diese Objekte enthalten Felder wie type(privat,geschäftlich,mobil), areaCode, number, directAccess

Jetzt wollte ich mir im ListView diese Informationen ausgeben lassen und erhielt diese Fehlermeldung.
(Cannot cast object of type "Tx_Extbase_Persistence_ObjectStorage" to string)

Ich konnte das Problem soweit eingrenzen das ich weiß das der Fehler auftritt wenn ich versuche die neu hinzugefügten Objekte auszulesen.
Controller

public function listAction() {
$feUsers = $this->feUsersRepository->findAll();
$this->view->assign('feUsers', $feUsers);
}

Mein Fluid Template sieht so aus.

<f:for each="{feUsers}" as="feUser">
<div>
<span>Name: {feUser.firstName} {feUser.lastName}
<f:for each="feUser.phoneNumbers" as="phoneNumber">
<span>{phoneNumber.type} {phoneNumber.areaCode} {phoneNumber.number} {phoneNumber.directAccess}</span>
</f:for>
</div>
</f:for>

Wie ihr seht gehe ich alle feUsers durch und hole mir für jeden User seine Daten
ohne die zweite for each klappt auch alles feUser.firstName und lastName werden angezeigt. Sobald ich aber versuche auf die phoneNumbers Objekte zuzugreifen von dem User kommt der Fehler.

Wenn mich nicht alles täuscht müsste das so richtig sein zumindest konnte ich in Extbase/Fluid 1.2.1 das so machen.

Aktuell arbeite ich auf TYPO3 4.5 extbase 1.3.1-devel/fluid 1.3.0

Hat jemand einen Tipp für mich stehe bissl auf dem Schlauch was die Lösung des Problems angeht.

Dank schonmal im Voraus.

Gruß typonewbe

sundawn ·

Du hast die Geschweiften Klammern bei der zweiten for vergessen würde ich sagen?
<f:for each="feUser.phoneNumbers" as="phoneNumber">
=>
<f:for each="{feUser.phoneNumbers}" as="phoneNumber">

Rest sollte funktionieren.