public static function extractAttributes($url = false)
{
$parse = parse_url($url);
$path = isset($parse['path']) ? explode('/', $parse['path']) : [];
$url = [];
foreach ($path as $segment) {
if (!empty($segment)) {
$url[] = $segment;
}
}
/** @var \Illuminate\Routing\Router $router */
$router = app('router');
return self::extractAttributesFromRoutes($url, $router->getRoutes());
}
/** * Returns the translation key for a given path. * * @param string $uri * @param string $locale * * @return false|string */ public function getRouteNameFromPath($uri, $locale) { $attributes = Url::extractAttributes($uri); $uri = str_replace([url()->current(), "/{$locale}/"], '', $uri); $uri = trim($uri, '/'); foreach ($this->translatedRoutes as $routeName) { $url = Url::substituteAttributes($attributes, $this->translate($routeName)); if ($url === $uri) { return $routeName; } } return false; }