function RedirectDestination::get

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Routing/RedirectDestination.php \Drupal\Core\Routing\RedirectDestination::get()
  2. 8.9.x core/lib/Drupal/Core/Routing/RedirectDestination.php \Drupal\Core\Routing\RedirectDestination::get()
  3. 11.x core/lib/Drupal/Core/Routing/RedirectDestination.php \Drupal\Core\Routing\RedirectDestination::get()

Gets the destination as a path.

To convert to a URL suitable for \Symfony\Component\HttpFoundation\RedirectResponse::__construct() use

\Drupal\Core\Url::fromUserInput(\Drupal::destination()->get())
  ->setAbsolute()
  ->toString();

Return value

string

Overrides RedirectDestinationInterface::get

1 call to RedirectDestination::get()
RedirectDestination::getAsArray in core/lib/Drupal/Core/Routing/RedirectDestination.php

File

core/lib/Drupal/Core/Routing/RedirectDestination.php, line 57

Class

RedirectDestination
Provides helpers for redirect destinations.

Namespace

Drupal\Core\Routing

Code

public function get() {
  if (!isset($this->destination)) {
    $query = $this->requestStack
      ->getCurrentRequest()->query;
    if ($query->has('destination')) {
      $this->destination = $query->get('destination');
      if (UrlHelper::isExternal($this->destination)) {
        // See https://www.drupal.org/node/2454955 for external redirects.
        $this->destination = '/';
      }
    }
    else {
      $this->destination = $this->urlGenerator
        ->generateFromRoute('<current>', [], [
        'query' => UrlHelper::filterQueryParameters($query->all()),
      ]);
    }
  }
  return $this->destination;
}

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