[TYPO3-german] count innerhalb einer fluid for each schleife

Dr. Dieter Porth typo3 at mobger.de
Thu Oct 6 17:58:09 CEST 2016



Am 06.10.2016 um 10:47 schrieb Ralf-Rene Schröder:
> Am 06.10.2016 um 08:47 schrieb Stefan Padberg:
>> Ich glaube nicht, dass man das auf Fluid-Ebene lösen sollte. Berechne
>> die verschiedenen counts doch einfach im Controller und gib sie dem view
>> mit.
> gerne, nur wie berechne ich sie in der userliste abhängig vom einzelnen
> User ??? das ist ja gerade mein Problem...
Im Controller einfach eine eigene array-Variable DEFINIEREN und per PHP 
sie so bauen, wie du sie im Template brauchst. (bzw. eine Service-Classe 
oder eine statische Utility-Function bauen, der die Konvertierung vornimmt.

Controller.
foreach ( $users as $user ){

     $myRecord['name'] = $user->getName();
...
}
$this->view->assign('myRecords', $myRecords);

Fluid-Template
<f:for each="{myRecords}" aas ="myrecord">
...{myRecord.name}
</f:for>



Mit besten Grüßen
    Dieter

P.S. So weit ich weiß, kennt das Repository auch eine Count-Methode.

$offersInRegion  =  $query->matching($query->contains('regions',  $region))->count(); Siehe Dokumentation 
https://docs.typo3.org/typo3cms/ExtbaseFluidBook/6-Persistence/3-implement-individual-database-queries.html 



>> Am 06.10.2016 um 02:42 schrieb Ralf-Rene Schröder:
>>> Hallo zusammen...
>>> irgendwie sehe ich gerade den Lösungsweg nicht...
>>>
>>> ich habe bei folgendem Controller:
>>> public function listUserAction() {
>>>    $users = $this->userRepository->findBySpecialUserStatus('1');
>>>    $this->view->assign('users', $users);
>>> }
>>> im fluid template eine Schleife
>>> <f:for each="{users}" as="user" >
>>>
>>> darin möchte ich in jeder userzeile etwas ausgeben wie
>>> <f:count subject="{user.records}" />
>>>
>>> solange ich ALLE {user.records} ausgeben will ja auch OK, aber ich
>>> brauche die jetzt in verschiedenen Abhängigkeiten, z.B. alle mit
>>> record.parameter=red oder ähnlich... also etwa:
>>> <f:count subject="{user.redRecords}" />
>>> (nur redRecords gibt es ja leider nicht wirklich)
>>>
>>> in der späteren Action die dann die so gefilterte Liste ausgibt habe ich
>>> das dann ja wieder über das RecordRepository problemlos im Griff mit dem
>>> Controller:
>>> public function listRedRecordsAction($user=NULL) {
>>>    $redRecords = $this->recordRepository->findRedRecords($user);
>>>    $this->view->assign('redRecords', $redRecords);
>>> }
>>> und der Ausgabe im fluid Template über:
>>> <f:for each="{redRecords}" as="record" >
>>>
>>> aber wie komme ich schon bei der gesamten user Liste vorher an die
>>> counter um zu sehen wieviel Elemente die folgende Liste haben wird???
>>> denn, wenn ich die Repository Abfrage aus der listRedRecordAction nehme,
>>> fehlt mir ja der einzelne userbezug, denn ich bin ja in der
>>> listUserAction ???



More information about the TYPO3-german mailing list