在Laravel v4中,我能够使用...获得当前的路线名称
Route::currentRouteName()
我如何在Laravel v5和Laravel v6中做到这一点?
尝试此
Route::getCurrentRoute()->getPath();
或
\Request::route()->getName()
来自v5。+
use Illuminate\Support\Facades\Route;
$currentPath= Route::getFacadeRoot()->current()->uri();
Laravel 5.3
Route::currentRouteName(); //use Illuminate\Support\Facades\Route;
或者如果您需要动作名称
Route::getCurrentRoute()->getActionName();
您可以在Laravel API中找到有关laravel路线的所有信息:http://laravel.com/api/5.0/Illuminate/Routing/Router.htmlhttp://laravel.com/api/5.0/Illuminate/Routing.html
检索请求URI
path方法返回请求的URI。因此,如果传入请求的目标是http://example.com/foo/bar
,则path方法将返回foo/bar
:
$uri = $request->path();
is
方法使您可以验证传入的请求URI与给定的模式匹配。使用此方法时,可以将*
字符用作通配符:
if ($request->is('admin/*')) {
//
}
要获取完整的URL,而不仅仅是路径信息,可以在请求实例上使用url方法:
$url = $request->url();
对于Laravel 5.2和5.3
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
Laravel 5.3 route documentation
Laravel 5.2 route documentation
有使用请求获取路线的选项
$request->route()->getName();
在控制器操作中,您可以执行以下操作:
现在在Laravel 5.3
中,我看到可以通过您尝试的类似方式进行:
[Request::path();
更好,请记住Use Request;
访问当前路由(v5.3及更高版本)
我曾在larvel 5.3中使用过获取路线名称
查看\Illuminate\Routing\Router.php
,可以通过在控制器方法中插入路由器来使用方法currentRouteNamed()
。例如:
访问当前路线
在帮助文件中,
由于某些原因,我无法使用任何这些解决方案。所以我只是将Route::currentRouteName()
中的路由声明为web.php
,在我的控制器中,我使用$router->get('/api/v1/users', ['as' => 'index', 'uses' => 'UserController@index'])
获得了路由的名称,其中$routeName = $request->route()[1]['as'];
是$request
]中\Illuminate\Http\Request $request
方法中的index
typehinted参数。
使用流明5.6。希望对别人有帮助。
使用Laravel 5.1,您可以使用
\Request::route()->getName()
解决方案:
UserController
我认为最简单的解决方案是使用此帮助程序:
$routeArray = app('request')->route()->getAction();
$controllerAction = class_basename($routeArray['controller']);
list($controller, $route) = explode('@', $controllerAction);
echo $route;
找到了一种找到当前路线名称的方法,适用于laravel v5,v5.1.28和v5.2.10
命名空间
use Illuminate\Support\Facades\Route;
和
$currentPath= Route::getFacadeRoot()->current()->uri();
对于Laravel laravel v5.3,您可以使用:
use Illuminate\Support\Facades\Route;
Route::currentRouteName();
如果您需要URL,而不是路由名称,则无需使用/不需要其他任何类:
url()->current();
如果您想在多条路线上选择菜单,您可以这样做:
<li class="{{ (Request::is('products/*') || Request::is('products') || Request::is('product/*') ? 'active' : '') }}"><a href="{{url('products')}}"><i class="fa fa-code-fork"></i> Products</a></li>
或者如果您只想选择一个菜单,您可以像这样简单地做:
<li class="{{ (Request::is('/users') ? 'active' : '') }}"><a href="{{url('/')}}"><i class="fa fa-envelope"></i> Users</a></li>
也在Laravel 5.2]中进行了测试]
希望此帮助某人。
Laravel 5.2可以使用
在5.2中,您可以将请求直接用于:
最短的方法是路线立面\Route::current()->getName()
您可以在模板中使用: