2016-11-04 39 views
0

就像標題所說,我試圖對可用於由KnP Paginator分頁的結果實施限制。對我的查詢設置限制並不會產生任何效果,我假設這是因爲分頁程序對查詢設置了自己的限制,以便每頁顯示正確的行數。我的用例很簡單:用戶在UI中應用一些過濾器(字段必須等於X,順序等),代碼將這些過濾器轉換爲查詢生成器的輸入。限制是允許用戶說'給我顯示[插入條件]爲真的前100個條目,按[字段]排序'。目前對於KnP Paginator來說似乎不可能,除非我在文檔中遺漏了某些東西。需要設置KnP Paginator的最大結果限制嗎?

+0

你發現'knp_paginator'服務的'paginate'方法的第三個參數? – malcolm

+0

絕對已經在使用中。我正在尋找的是一種限制較大數據集然後對其進行分頁的方法。換句話說,一種告訴paginator我只想顯示500個結果的方式,但仍然給我20每個頁面高達500. 從我可以告訴這是目前不可能,所以我已經實施了一個UI解決方法停止在達到預期限制後顯示結果。 – TheGremlyn

+0

使用自定義'count'查詢:https://github.com/KnpLabs/KnpPaginatorBundle/blob/master/Resources/doc/manual_counting.md – malcolm

回答

0

使用自定義count查詢:

<?php 
$count = 500; 

$query = $entityManager 
    ->createQuery('SELECT a FROM AcmeMainBundle:Article a') 
    ->setHint('knp_paginator.count', $count) 
; 
$pagination = $paginator->paginate($query, $page, 10); 
+0

所以這似乎幾乎工作。如您所描述的那樣添加計數提示會限制可用頁面的總數,但是例如,我將其設置爲25,每頁20個,預計在頁面= 2上看到5個結果,但是我在第二頁上獲得了全部20個結果。任何想法爲什麼這可能是? – TheGremlyn

相關問題