[TYPO3-german] Extbase/Fluid-Extension: FlexForm settings werden nicht gelesen (T3 6.2.4)
bernd wilke
t3ng at bernd-wilke.net
Thu Jan 22 11:24:11 CET 2015
Am 22.01.15 um 09:37 schrieb Hagen Gebauer:
> Hallo Johannes,
>
> vielen Dank für Deine Antwort. Genau genommen will ich nicht den im
> FlexForm gewählten Eintrag ausgeben, sondern eine Liste von
> DB-Einträgen, die mit diesem Eintrag übereinstimmen. Der Ausgabe im
> Fluid-Template war letztlich nur ein Test, ob die Variable überhaupt
> ankommt.
>
> Wie dem auch sei: ich habe folgendes herausgefunden:
> • das Array $this->settings ist nur im Controller, nicht aber in der
> Repository verfügbar (ich war eigentlich überzeugt, das auch schon
> getestet zu haben)
> • im Fluid-Template ist {flexform.trackSelection} ebenfalls nicht verfügbar
>
> So funktioniert es jetzt:
>
> Controller-Methode:
> public function listByTrackAction() {
> $groups =
> $this->groupsRepository->listByTrack($this->settings['flexform']['trackSelection']);
>
> $this->view->assign('groups', $groups);
> }
>
> Repository-Methode:
> public function listByTrack($primaryTrack) {
> $query = $this->createQuery();
> $query = $query->matching(
> $query->like('primary_track', $primaryTrack)
> );
> return $query->execute();
> }
>
> Zudem habe ich einen Weg gefunden, mir jedweden String im Fluid-Template
> auszugeben und damit eine Debugging-Methode geschaffen. Für den Fall,
> dass es jemand anderen interessiert, führe ich es am Beispiel des Arrays
> $this->settings['flexform'] mal aus:
>
> (im Controller listByTrackAction())
> $nr = 0;
> foreach($this->settings['flexform'] AS $key => $val) {
> $groups[$nr]['firstName'] = $key;
> $groups[$nr]['lastName'] = $val;
> $nr++;
> }
>
> Entscheidend ist die Zuordnung der Werte zum Array $groups[x], das ja im
> Controller dem View zugeordnet wird (siehe oben)
> Im Template gebe ich in einer Schleife
> <f:for each="{groups}" as="group">
> die Variablen {group.firstName} und {group.lastName} aus.
>
hm. du kennst aber schon den Viewhelper f:debug?
und {_all} definiert ein Array mit allen definierten Variablen:
<f:debug title="alle definierten Variablen">{_all}</f:debug>
da müßte dein flexform dann auch drin sein (sofern du nicht in einer
Section mit nur lokalen Variablen bist).
bernd
--
http://www.pi-phi.de/cheatsheet.html
More information about the TYPO3-german
mailing list