You are here

public function AliasStorage::aliasExists in Drupal 8

Checks if alias already exists.

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

Parameters

string $alias: Alias to check against.

string $langcode: Language of the alias.

string|null $source: (optional) Path that alias is to be assigned to.

Return value

bool TRUE if alias already exists and FALSE otherwise.

Overrides AliasStorageInterface::aliasExists

File

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

Class

AliasStorage
Provides a class for CRUD operations on path aliases.

Namespace

Drupal\Core\Path

Code

public function aliasExists($alias, $langcode, $source = NULL) {

  // Use LIKE and NOT LIKE for case-insensitive matching.
  $query = $this->connection
    ->select(static::TABLE)
    ->condition('alias', $this->connection
    ->escapeLike($alias), 'LIKE')
    ->condition('langcode', $langcode);
  if (!empty($source)) {
    $query
      ->condition('path', $this->connection
      ->escapeLike($source), 'NOT LIKE');
  }
  $query
    ->addExpression('1');
  $query
    ->range(0, 1);
  return (bool) $query
    ->execute()
    ->fetchField();
}