2017-02-26 7 views
0

自分の内線で、表示されているアイテムを制限したいと思います。<f:widget.paginate>コントローラからより多くのアイテムを表示する

$showMaxItems = (int)$this->settings['event']['maxItems']; 

とmaxItemsが見つかりました::

$events = $this->eventRepository->findLimited($showMaxItems); 

およびビューに割り当てる:

$this->view->assign('events', $events); 

を私flexformから私は設定値= 5 EventController.phpを取得しますEventRepository.php

public function findLimited($limit) { 
    $query = $this->createQuery(); 
    return $query->setLimit($limit) 
     ->execute(); 
} 

するlist.htmlは、私は両方のバージョンでEventControllerでデバッグデータを表示するとwidget.paginationとするlist.htmlは、常に私は10の項目

<f:widget.paginate objects="{events}" as="paginatedEvents"> 
    <f:for each="{paginatedEvents}" as="event"> 
    </f:for> 
</f:widget.paginate> 

を示し

<f:for each="{events}" as="event"> 
</f:for> 

maxItemsを示し5アイテムあり

\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($events); 

これは私またはextbaseのバグですか?私はhttps://forge.typo3.org/issues/79559を見つけましたが、私の問題に適合しません。

答えて

0

setLimit()。

カスタムリミットまたはオフセットを使用して結果セットにページ番号を付ける場合は、QueryResultを配列に変換して改ページする必要があります。

+0

サーバサイドのページ付けを行う方法の例を教えてください。例えば。担当者に1000レコードがある場合...フロントエンドでは100レコードが必要となり、次の100レコードをロードするために2ページ目に「ページ設定」すると...など –

0

リポジトリ呼び出しを制限する必要はなく、すべてのオブジェクトをページネーションから独立させるだけです(例:あなたが設定引数およびビューヘルパーを必要とするのpaginateビューヘルパーに

$this->eventRepository->findAll()はあなたのための制限を行います。

<f:widget.paginate objects="{events}" as="paginatedEvents" configuration="{itemsPerPage: '{settings.event.maxItems}'}"> 
    <f:for each="{paginatedEvents}"> 
    ... 
    </f:for> 
</f:widget.paginate> 

参照:https://fluidtypo3.org/viewhelpers/fluid/master/Widget/PaginateViewHelper.htmlページネーションウィジェットは、あなたが経由で設定した制限をオーバーライドするためです

+0

私は、プラグインflexformではmaxItemsを制限し、itemsPerPageでは制限しません。例:maxItems = 5; itemsPerPage = 10;ページネーションは必要ありません。例2:maxItems =(未設定=すべて); itemsPerPage = 10;ページ区切りが必要 –

関連する問題