public function QueryTest::execute in Drupal 9
Same name and namespace in other branches
- 8 core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php \Drupal\views_test_data\Plugin\views\query\QueryTest::execute()
- 10 core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php \Drupal\views_test_data\Plugin\views\query\QueryTest::execute()
Executes the query and fills the associated view object with according values.
Values to set: $view->result, $view->total_rows, $view->execute_time, $view->pager['current_page'].
$view->result should contain an array of objects. The array must use a numeric index starting at 0.
Parameters
\Drupal\views\ViewExecutable $view: The view which is executed.
Overrides QueryPluginBase::execute
File
- core/
modules/ views/ tests/ modules/ views_test_data/ src/ Plugin/ views/ query/ QueryTest.php, line 97
Class
- QueryTest
- Defines a query test plugin.
Namespace
Drupal\views_test_data\Plugin\views\queryCode
public function execute(ViewExecutable $view) {
$result = [];
foreach ($this->allItems as $element) {
// Run all conditions on the element, and add it to the result if they
// match.
$match = TRUE;
foreach ($this->conditions as $condition) {
$match &= $this
->match($element, $condition);
}
if ($match) {
// If the query explicit defines fields to use, filter all others out.
// Filter out fields
if ($this->fields) {
$element = array_intersect_key($element, $this->fields);
}
$result[] = new ResultRow($element);
}
}
$this->view->result = $result;
}