在Laravel v4中,我可以使用…

Route::currentRouteName()

我如何在Laravel v5和Laravel v6中做到这一点?


当前回答

您可以使用以下方法:

Route::getCurrentRoute()->getPath();

在Laravel版本> 6.0中,您可以使用以下方法:

$route = Route::current();

$name = Route::currentRouteName();

$action = Route::currentRouteAction();

其他回答

在Helper文件中,

您可以使用Route::current()->uri()来获取当前URL。

因此,如果你比较你的路由名在菜单上设置活动类,那么如果你使用

Route::currentRouteName()获取路由名并进行比较

你可以在模板中使用:

<?php $path = Route::getCurrentRoute()->getPath(); ?>
<?php if (starts_with($path, 'admin/')) echo "active"; ?>

如果你需要url,而不是路由名,你不需要使用/需要任何其他类:

url()->current();

解决方案:

$routeArray = app('request')->route()->getAction();
$controllerAction = class_basename($routeArray['controller']);
list($controller, $route) = explode('@', $controllerAction);
echo $route;
$request->route()->getName();