2013-06-13 13 views
11

के साथ पुनर्प्राप्त रिकॉर्ड्स की कुल संख्या कैसे प्राप्त करें जब आप कुछ पेज limit के साथ $this->paginate('Modelname') का उपयोग करके रिकॉर्ड्स पुनर्प्राप्त करते हैं, तो आपको रिकॉर्ड्स की कुल संख्या कैसे प्राप्त होती है?केकपीएचपी: अंकन

मैं इस कुल गणना को देखने पर प्रदर्शित करना चाहता हूं, लेकिन count($recordsRetrieved) केवल वर्तमान पृष्ठ पर प्रदर्शित संख्या लौटाता है। तो, अगर लिया गया रिकॉर्ड की कुल संख्या 99 है और limit 10 के लिए सेट है, यह रिटर्न 10, नहीं 99

उत्तर

17

आप debug($this->Paginator->params());

यह आपको

/* 
Array 
(
    [page] => 2 
    [current] => 2 
    [count] => 43 
    [prevPage] => 1 
    [nextPage] => 3 
    [pageCount] => 3 
    [order] => 
    [limit] => 20 
    [options] => Array 
     (
      [page] => 2 
      [conditions] => Array 
       (
       ) 
     ) 
    [paramType] => named 
) 
*/ 

अंतिम कोड दे देंगे कर सकते हैं PHP के लिए> = 5.4:

$this->Paginator->params()['count'];

5,4 की तुलना में कम पीएचपी संस्करणों के लिए:

0,123,
$paginatorInformation = $this->Paginator->params(); 
$totalPageCount = $paginatorInformation['count']; 
0

यहाँ कैसे मैं अपने नियंत्रक *

इस से गिनती मिला है पृष्ठांकन के सभी सामान मिल जाएगा केकेपीएचपी 2.3 के लिए है। यह एक व्यू हेल्पर का उपयोग करता है, जो आमतौर पर नियंत्रक में नो-नो है क्योंकि यह एमवीसी का उल्लंघन करता है, लेकिन इस मामले में मुझे लगता है कि कोड को DRY रखने के लिए समझ में आता है।

// Top of file 
App::uses('PaginatorHelper', 'View/Helper'); 

// Later in controller method 
$paginatorHelper = new PaginatorHelper(new View(null)); 
$records = $this->paginate(); 
$count = $paginatorHelper->params()['count']; 

* मैं ओपी देखने से के बारे में पूछा है, लेकिन मैं समझ अगर Arzon बरुआ का जवाब लोगों मदद कर रहा है (हालांकि मुझे लगता है कि यह केवल आपके द्वारा अनुरोध गिनती, नहीं वास्तविक गणना ओ पी चाहता है के रूप में बताता है), तो यह भी मदद कर सकता है।

0

इस तरह नियंत्रक पर एक अंकन जानकारी प्राप्त हो रही है।

class YourController extends Controller{ 
    $helpers = array('Paginator'); 
    public fn(){ 
    $view = new View(null); 
    var_dump($view->paginator->params()); 
    } 
}