/** * Get the URL for a given route instance. * * @param \Routing\Route $route * @param array $parameters * @param bool $absolute * @return string * * @throws \BadMethodCallException */ protected function toRoute($route, array $parameters, $absolute) { $pattern = $route->uri(); if ($this->legacyRouting && preg_match('#\\(:\\w+\\)#', $pattern) === 1) { list($pattern) = RouteParser::parse($pattern); } $domain = $this->getRouteDomain($route, $parameters); $uri = strtr(rawurlencode($this->trimUrl($root = $this->replaceRoot($route, $domain, $parameters), $this->replaceRouteParameters($pattern, $parameters))), $this->dontEncode) . $this->getRouteQueryString($parameters); return $absolute ? $uri : '/' . ltrim(str_replace($root, '', $uri), '/'); }