本文目录导读:

在 Laravel 中获取当前路由信息有多种方式,以下是常用的方法:
获取当前路由名称
// 在控制器或视图中
$routeName = request()->route()->getName();
// 或
$routeName = Route::currentRouteName();
// 或
$routeName = \Illuminate\Support\Facades\Route::currentRouteName();
// 示例
if ($routeName == 'user.profile') {
// 执行特定逻辑
}
获取当前路由URI
// 获取当前请求的URI(不含域名) $uri = request()->path(); // 或 $uri = Route::current()->uri(); // 获取完整URL $fullUrl = request()->fullUrl(); $url = request()->url();
获取当前路由Action
// 获取控制器@方法 $action = Route::currentRouteAction(); // 返回如:App\Http\Controllers\UserController@profile // 获取路由参数 $parameters = Route::current()->parameters();
获取当前路由实例
// 获取当前路由对象 $route = Route::current(); // 或 $route = request()->route(); // 获取路由名称(如果未命名则返回null) $name = $route->getName();
辅助函数方式
// 使用 Route 门面 use Illuminate\Support\Facades\Route; $currentRouteName = Route::currentRouteName(); $currentUri = Route::current()->uri(); $currentAction = Route::currentRouteAction(); // 使用 request() 辅助函数 $currentPath = request()->path();
完整的判断示例
// 检查当前路由
if (Route::is('admin.*')) {
// 是admin前缀的路由
}
if (Route::currentRouteNamed('user.show')) {
// 是user.show路由
}
// 获取路由参数
$userId = request()->route('user');
// 或
$userId = Route::input('user');
在中间件中使用
public function handle($request, Closure $next)
{
$route = $request->route();
$routeName = $route->getName();
// 自定义逻辑
return $next($request);
}
注意事项
- 必须确保路由已经经过中间件处理(
SubstituteBindings中间件)才能正确获取 - 如果在 ServiceProvider 中使用,建议在
boot方法中,并确保路由已注册 - 对于未命名的路由,
getName()会返回null
这些方法可以根据具体需求选择使用,最常见的场景是获取路由名称来执行条件逻辑。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播