Hallo,
um besser in das Thema extbase/fluid zu kommen, schreibe ich eine kleine Anwendung, bei der es um Autorennen geht. Um es zu vereinfachen habe ich ein Objekt Saison (Aggregate Root), das vereinfacht gesagt aus 3 Relationen besteht: Rennen (1:n), Teams (1:n) und Fahrer (m:n).
Im Controller hole ich mir immer nur ein Saison-Objekt und übergebe es dem Fluid-Template von der Action.
$seasons = $this->seasonRepository->findAll();
if($this->request->hasArgument('season') && (int)$this->request->hasArgument('season') > 0) {
$seasonUid = intval($this->request->getArgument('season'));
$season = $this->seasonRepository->findByUid($seasonUid);
$piVars['season'] = $seasonUid;
}else {
$season = $seasons->getFirst();
//@TODO: Get last season
}
$this->view->assign('season', $season);
<f:debug>{season}</f:debug>
<f:if condition="{season}">
<h2>{season.year}</h2>
<ul>
<f:for each="{season.rennen}" as="{run}" iteration="i">
<li>
<f:debug>{run}</f:debug>
{i.cycle}
<f:format.date format="d.m.Y H:i">{run.date}</f:format.date>
{run.title}
{run.city}
{run.status}
</li>
</f:for>
</ul>
Ich erhalte innerhalb der For-Schleife folgendes Ergebnis:
<ul>
<li>1</li>
<li>2</li>
</ul>
Die Properties von {run} werden nicht ausgegeben, weil f:debug gibt null zurück.
Schaut man sich f:debug von {season} an, stellt man fest, dass sehr wohl die Run-Objekte mit Properties im ObjectStorage unter "Rennen" vorhanden sind.
Rufe ich die showAction eines Rennens auf, das ebenfalls eine for-Schleife über seine Positionen geht, dann erhalte wie gewünscht die Properties vom Positions-Objekts.
Was läuft unter TYPO3 4.7.17 in einem XAMPP unter WIN 7 falsch? Speicherfehler?
Wohl kaum, weil dieser Fehler erst jetzt auftritt und ich bereits zuvor 2 Extensionen geschrieben habe, die das Problem nicht haben.