在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将提供您要查找的总数。