function UidRevisionTrait::uidRevisionQuery

Checks for nodes that a user posted or created a revision on.

Parameters

array $uids: A list of user ids.

int $group: See \Drupal\views\Plugin\views\query\Sql::addWhereExpression() $group.

2 calls to UidRevisionTrait::uidRevisionQuery()
UidRevision::query in core/modules/node/src/Plugin/views/filter/UidRevision.php
Add this filter to the query.
UidRevision::query in core/modules/node/src/Plugin/views/argument/UidRevision.php
Set up the query for this argument.

File

core/modules/node/src/Plugin/views/UidRevisionTrait.php, line 20

Class

UidRevisionTrait
Checks for nodes that a user posted or created a revision on.

Namespace

Drupal\node\Plugin\views

Code

public function uidRevisionQuery(array $uids, int $group = 0) : void {
  $this->ensureMyTable();
  // As per https://www.php.net/manual/en/pdo.prepare.php "you cannot use a
  // named parameter marker of the same name more than once in a prepared
  // statement".
  $placeholder_1 = $this->placeholder() . '[]';
  $placeholder_2 = $this->placeholder() . '[]';
  $args = array_values($uids);
  $this->query
    ->addWhereExpression($group, "{$this->tableAlias}.uid IN ({$placeholder_1}) OR\n      EXISTS (SELECT 1 FROM {node_revision} nr WHERE nr.revision_uid IN ({$placeholder_2}) AND nr.nid = {$this->tableAlias}.nid)", [
    $placeholder_1 => $args,
    $placeholder_2 => $args,
  ]);
}

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