function DatabaseTestHooks::queryAlter

Implements hook_query_alter().

Attributes

#[Hook('query_alter')]

File

core/modules/system/tests/modules/database_test/src/Hook/DatabaseTestHooks.php, line 18

Class

DatabaseTestHooks
Hook implementations for database_test.

Namespace

Drupal\database_test\Hook

Code

public function queryAlter(AlterableInterface $query) : void {
  if ($query->hasTag('database_test_alter_add_range')) {
    $query->range(0, 2);
  }
  if ($query->hasTag('database_test_alter_add_join')) {
    $people_alias = $query->join('test', 'people', "[test_task].[pid] = [%alias].[id]");
    $query->addField($people_alias, 'name', 'name');
    $query->condition($people_alias . '.id', 2);
  }
  if ($query->hasTag('database_test_alter_change_conditional')) {
    $conditions =& $query->conditions();
    $conditions[0]['value'] = 2;
  }
  if ($query->hasTag('database_test_alter_change_fields')) {
    $fields =& $query->getFields();
    unset($fields['age']);
  }
  if ($query->hasTag('database_test_alter_change_expressions')) {
    $expressions =& $query->getExpressions();
    $expressions['double_age']['expression'] = '[age]*3';
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.