You are here

public function QueryPluginBase::setWhereGroup in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/views/src/Plugin/views/query/QueryPluginBase.php \Drupal\views\Plugin\views\query\QueryPluginBase::setWhereGroup()

Create a new grouping for the WHERE or HAVING clause.

Parameters

$type: Either 'AND' or 'OR'. All items within this group will be added to the WHERE clause with this logical operator.

$group: An ID to use for this group. If unspecified, an ID will be generated.

$where: 'where' or 'having'.

Return value

The group ID generated.

3 calls to QueryPluginBase::setWhereGroup()
Sql::addHavingExpression in core/modules/views/src/Plugin/views/query/Sql.php
Add a complex HAVING clause to the query. The caller is responsible for ensuring that all fields are fully qualified (TABLE.FIELD) and that the table and an appropriate GROUP BY already exist in the query. Internally the dbtng method…
Sql::addWhere in core/modules/views/src/Plugin/views/query/Sql.php
Add a simple WHERE clause to the query. The caller is responsible for ensuring that all fields are fully qualified (TABLE.FIELD) and that the table already exists in the query.
Sql::addWhereExpression in core/modules/views/src/Plugin/views/query/Sql.php
Add a complex WHERE clause to the query.

File

core/modules/views/src/Plugin/views/query/QueryPluginBase.php, line 166

Class

QueryPluginBase
Base plugin class for Views queries.

Namespace

Drupal\views\Plugin\views\query

Code

public function setWhereGroup($type = 'AND', $group = NULL, $where = 'where') {

  // Set an alias.
  $groups =& $this->{$where};
  if (!isset($group)) {
    $group = empty($groups) ? 1 : max(array_keys($groups)) + 1;
  }

  // Create an empty group
  if (empty($groups[$group])) {
    $groups[$group] = [
      'conditions' => [],
      'args' => [],
    ];
  }
  $groups[$group]['type'] = strtoupper($type);
  return $group;
}