function WorkspacesAliasRepository::getBaseQuery

Same name and namespace in other branches
  1. 11.x core/modules/workspaces/src/WorkspacesAliasRepository.php \Drupal\workspaces\WorkspacesAliasRepository::getBaseQuery()
  2. 10 core/modules/workspaces/src/WorkspacesAliasRepository.php \Drupal\workspaces\WorkspacesAliasRepository::getBaseQuery()
  3. 9 core/modules/workspaces/src/WorkspacesAliasRepository.php \Drupal\workspaces\WorkspacesAliasRepository::getBaseQuery()

File

core/modules/workspaces/src/WorkspacesAliasRepository.php, line 35

Class

WorkspacesAliasRepository
Provides workspace-specific path alias lookup queries.

Namespace

Drupal\workspaces

Code

protected function getBaseQuery() {
  // Don't alter any queries if we're not in a workspace context.
  if (!$this->workspaceManager
    ->hasActiveWorkspace()) {
    return parent::getBaseQuery();
  }
  $active_workspace = $this->workspaceManager
    ->getActiveWorkspace();
  $query = $this->connection
    ->select('path_alias', 'base_table_2');
  $wa_join = $query->leftJoin('workspace_association', NULL, "%alias.target_entity_type_id = 'path_alias' AND %alias.target_entity_id = base_table_2.id AND %alias.workspace = :active_workspace_id", [
    ':active_workspace_id' => $active_workspace->id(),
  ]);
  $query->innerJoin('path_alias_revision', 'base_table', "%alias.revision_id = COALESCE({$wa_join}.target_entity_revision_id, base_table_2.revision_id)");
  return $query;
}

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