You are here

public function RedirectDestination::get in Drupal 8

Same name and namespace in other branches
  1. 9 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
Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.

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 (UrlHelper::isExternal($query
      ->get('destination'))) {
      $this->destination = '/';
    }
    elseif ($query
      ->has('destination')) {
      $this->destination = $query
        ->get('destination');
    }
    else {
      $this->destination = $this->urlGenerator
        ->generateFromRoute('<current>', [], [
        'query' => UrlHelper::filterQueryParameters($query
          ->all()),
      ]);
    }
  }
  return $this->destination;
}