在Laravel v4中, 我可以使用...
Route::currentRouteName()
我怎样才能在 Laravel v5 和 Laravel v6?
试试这个
Route::getCurrentRoute()->getPath();
或
\Request::route()->getName()
从5.1版本开始
use Illuminate\Support\Facades\Route;
$currentPath= Route::getFacadeRoot()->current()->uri();
Laravel v5.2
Route::currentRouteName(); //use Illuminate\Support\Facades\Route;
或者如果你需要动作名称
Route::getCurrentRoute()->getActionName();
检索请求URI
path方法返回请求的URI。所以,如果传入的请求是以 http://example.com/foo/bar
方法将返回 foo/bar
:
$uri = $request->path();
负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: is
方法允许您验证传入的请求URI是否与给定模式相匹配。您可以使用 *
字符作为通配符。
if ($request->is('admin/*')) {
//
}
要获取完整的URL, 而不是仅仅获取路径信息, 你可以在请求实例中使用url方法:
$url = $request->url();
Laravel v5.3 ... v5.8
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
Laravel v6.x...7.x
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
** 2019年11月11日当前 - 6.5版本 **。
可以选择使用request来获取路由。
$request->route()->getName();
使用Laravel 5.1, 你可以使用
\Request::route()->getName()
找到了一种方法来找到当前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()->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 你可以使用
$request->route()->getName()
它会给你当前的路由名称。
在5.2中,你可以直接使用请求。
$request->route()->getName();
或通过助记方法使用。
request()->route()->getName();
输出示例。
"home.index"
最短的方法是Route Facade\Route::current()->getName()
这在laravel 5.4中也能用*。
在控制器动作中, 你可以直接做:
public function someAction(Request $request)
{
$routeName = $request->route()->getName();
}
$request
这里由Laravel的服务容器解决.
getName()
返回 指定路线 只是。null
否则(但你仍然可以探索 \Illuminate\Routing\Route
对象)。)
换句话说,你应该像这样定义你的路由,以便返回 "nameOfMyRoute"。
Route::get('my/some-action', [
'as' => 'nameOfMyRoute',
'uses' => 'MyController@someAction'
]);
你可以在模板中使用:
<?php $path = Route::getCurrentRoute()->getPath(); ?>
<?php if (starts_with($path, 'admin/')) echo "active"; ?>
现在在Laravel中 5.3
我是看到可以做类似你试过的。
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
https:/laravel.comdocs5.3routing#accessing-the-current-route。
访问当前路线
在刀片模板中获取当前路径名称
{{ Route::currentRouteName() }}
更多信息 https:/laravel.comdocs5.5routing#accessing-the-current-route。
访问当前路由(v5.3以上)
您可以使用Route Facade上的current、currentRouteName和currentRouteAction方法来访问处理传入请求的路由的信息。
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
请参考Route Facade的底层类和Route实例的API文档,查看所有可访问的方法。
参考文献 : https:/laravel.comdocs5.2routing#accessing-the-current-route。
Request::path();
是比较好的,而且要记得 use Request;
$request->route()->getName();
我在larvel 5.3中使用了获取路径名的方法。
Request::path()
在看 \Illuminate\Routing\Router.php
你可以使用 currentRouteNamed()
通过在你的控制器方法中注入一个Router。例如,在你的控制器方法中注入一个Router。
use Illuminate\Routing\Router;
public function index(Request $request, Router $router) {
return view($router->currentRouteNamed('foo') ? 'view1' : 'view2');
}
或使用Route Facade。
public function index(Request $request) {
return view(\Route::currentRouteNamed('foo') ? 'view1' : 'view2');
}
你也可以使用方法 is()
来检查路由是否被命名为给定参数中的任何一个,但要注意的是,这个方法使用了 preg_match()
而我的经验是,它在使用带点的路径名时,会导致奇怪的行为(比如 'foo.bar.done'
). 还有就是围绕着性能问题 preg_match()
这在PHP社区是一个很大的话题。
public function index(Request $request) {
return view(\Route::is('foo', 'bar') ? 'view1' : 'view2');
}
你可以使用下面的方法。
Route::getCurrentRoute()->getPath();
在Laravel 6.0版本中, 你可以使用以下方法:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
在Controller中获取当前路由名
ie- http:/localhostproject_nameedit。
$request->seg(1); /编辑
(或)
$request->url();/。http:/localhostproject_nameedit)。
在助手文件中。
您可以使用 Route::current()->uri()
来获取当前的URL。
因此,如果你把你的路径名与菜单上的活动类进行比较,那么你最好使用
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
方式 UserController
使用Lumen 5.6。希望能帮到大家。
解决方法:在刀片文件中,可以使用下面的代码来获取路由名称。
$routeArray = app('request')->route()->getAction();
$controllerAction = class_basename($routeArray['controller']);
list($controller, $route) = explode('@', $controllerAction);
echo $route;
您可以使用下面的代码来获取刀片文件中的路由名称。
request()->route()->uri