首页 > 解决方案 > 如何通过分页获取 Drupal 8 视图中的总行数?

问题描述

在 Drupal 8 中,我使用分页视图。每页有 10 个项目。

在 hook_views_pre_render(ViewExecutable $view) {..} 我想获取要在另一个函数中使用的项目数。但是,由于寻呼机设置,$result = 10 和 $total_rows = 10。实际项目编号在 500 到 2000 之间。作为一种解决方法,我尝试了一个临时视图。

$view2 = Views::getView('my_view');
$view2->setDisplay('page_1');
$view2->setItemsPerPage(15000);
$view2->execute();

这行得通。view2->total_rows 返回所需的值。但我不想在 setItemsPerPage 中使用固定值。0 或 null(对于每页无限项)不返回 total_rows 的结果。

我该怎么做才能获得正确数量的视图项?

标签: drupalview

解决方案


在您的 hook_views_pre_render 函数中,您可以执行视图(即使使用分页器设置)并获取总行数/结果,而不是调用 view->SetDisplay 和 view->setItemsPerPage:

  $view = Views::getView('my_view');
  $view->execute('page_1');
  $rows = $view->total_rows;

$rows 将提供您要查找的总数。


推荐阅读