15

当您使用$this->paginate('Modelname')with some page检索记录时limit,您如何获得检索到的记录总数?

我想在视图上显示这个总数,但count($recordsRetrieved)返回仅在当前页面上显示的数字。因此,如果检索到的记录总数为 99 并且limit设置为 10,则返回 10,而不是 99。

4

5 回答 5

20

你可以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 的 PHP 版本:

$paginatorInformation = $this->Paginator->params();
$totalPageCount = $paginatorInformation['count'];
于 2013-06-13T17:52:59.357 回答
7

要获得答案,请访问以下链接 http://book.cakephp.org/2.0/en/controllers/request-response.html

使用pr($this->request->params)你会发现所有分页的东西

于 2014-05-16T20:32:14.677 回答
4

对于蛋糕 3.x

您可以使用方法 getPagingParams

例子:

debug($this->Paginator->getPagingParams());

输出:

[
    'users' => [
        'finder' => 'all',
        'page' => (int) 1,
        'current' => (int) 5,
        'count' => (int) 5,
        'perPage' => (int) 1,
        'prevPage' => false,
        'nextPage' => true,
        'pageCount' => (int) 5,
        'sort' => null,
        'direction' => false,
        'limit' => null,
        'sortDefault' => false,
        'directionDefault' => false,
        'scope' => null
    ]
]
于 2018-04-12T13:04:09.663 回答
2

这是我从控制器获得计数的方法*

这是针对 CakePHP 2.3 的。它使用了一个视图助手,这在控制器中通常是一个禁忌,因为它违反了 MVC,但在这种情况下,我认为保持代码 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'];

*我知道 OP 从视图中询问,但我认为 Arzon Barua 的回答是否对人们有所帮助(尽管我认为它只告诉您请求的计数,而不是 OP 想要的实际计数),那么这可能也有帮助。

于 2015-06-23T04:54:16.513 回答
0

这种方式是通过控制器获取分页信息。

class YourController extends Controller{
  $helpers = array('Paginator');
  public fn(){
    $view = new View(null);
    var_dump($view->paginator->params());
  }
}
于 2015-11-29T20:51:18.007 回答