function AliasStorage::load

Fetches a specific URL alias from the database.

The default implementation performs case-insensitive matching on the 'source' and 'alias' strings.

Parameters

array $conditions: An array of query conditions.

Return value

array|false FALSE if no alias was found or an associative array containing the following keys:

  • source (string): The internal system path with a starting slash.
  • alias (string): The URL alias with a starting slash.
  • pid (int): Unique path alias identifier.
  • langcode (string): The language code of the alias.

Overrides AliasStorageInterface::load

File

core/lib/Drupal/Core/Path/AliasStorage.php, line 124

Class

AliasStorage
Provides a class for CRUD operations on path aliases.

Namespace

Drupal\Core\Path

Code

public function load($conditions) {
  $query = $this->getPathAliasEntityStorage()
    ->getQuery();
  // Ignore access restrictions for this API.
  $query->accessCheck(FALSE);
  foreach ($conditions as $field => $value) {
    if ($field === 'source') {
      $field = 'path';
    }
    elseif ($field === 'pid') {
      $field = 'id';
    }
    $query->condition($field, $value, '=');
  }
  $result = $query->sort('id', 'DESC')
    ->range(0, 1)
    ->execute();
  $entities = $this->getPathAliasEntityStorage()
    ->loadMultiple($result);
  /** @var \Drupal\path_alias\PathAliasInterface $path_alias */
  $path_alias = reset($entities);
  if ($path_alias) {
    return [
      'pid' => $path_alias->id(),
      'source' => $path_alias->getPath(),
      'alias' => $path_alias->getAlias(),
      'langcode' => $path_alias->get('langcode')->value,
    ];
  }
  return FALSE;
}

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