In drupal 9, I've been trying to get a specific value of every node result from a view and push them into an array. While debugging I was able to access the nodes of the view's current page and not from the other pages. Is there a way to achieve that with a hook_preprocess or any other hook?
Things I've tried:
In a hook_preprocess_views_view
I could access the node values from the page I was and not the rest, same with a hook_views_pre_render
.
Configured the view to Items per page option to 0 to bring me all the results in a single page and with a hook_views_pre_view to setItemsPerPage(10)
but I couldn't get access to any result since this hook runs before the view fetches any.
To get the results of a view you could use the following function in your custom module file.
use Drupal\views\Views;
function get_view_results($view_id, $display_id) {
$view = Views::getView($view_id);
if (!isset($view)) {
return [];
}
$view->setDisplay($display_id);
$view->setItemsPerPage(0);
$view->execute();
$results = $view->result;
return $results;
}