drupal - 如何通过分页获取 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 的结果。
我该怎么做才能获得正确数量的视图项?
解决方案
在您的 hook_views_pre_render 函数中,您可以执行视图(即使使用分页器设置)并获取总行数/结果,而不是调用 view->SetDisplay 和 view->setItemsPerPage:
$view = Views::getView('my_view');
$view->execute('page_1');
$rows = $view->total_rows;
$rows 将提供您要查找的总数。
推荐阅读
- java - Eclipse:如何在不暂停线程的情况下在调试时执行多个表达式
- php - 将 id 传递给另一个控制器时找不到 404 - Laravel
- opos - 无法在 Windows 上安装 libwdi
- python - 对 tensorflow 对象执行操作时出现 TypeError
- java - Spring Security:使用@Secured 保护后未找到 Rest 端点
- c# - 数据集仅返回 rdlc 报告中的第一个可数据列名称。如何从所有数据表中获取所有列?
- ethereum - Metamask 未显示本地 geth 实例上的以太坊地址余额
- php - 失败的单元/功能测试 symfony 4.2
- c - while循环递增和递减
- unix - 无法使用 xargs 命令递归地重命名文件