在Laravel v4中,我可以使用…

Route::currentRouteName()

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


当前回答

访问当前路由(v5.3起)

你可以在Route虚包上使用current, currentRouteName和currentRouteAction方法来访问处理传入请求的路由信息:

$route = Route::current();

$name = Route::currentRouteName();

$action = Route::currentRouteAction();

参考Route虚包和Route实例的底层类的API文档,查看所有可访问的方法。

参考资料:https://laravel.com/docs/5.2/routing#accessing-the-current-route

其他回答

由于某些原因,我不能使用这些解决方案。所以我刚刚在web.php中声明了我的路由$router->get('/api/v1/users', ['as' => 'index', 'uses' => 'UserController@index']),在我的控制器中,我得到了路由的名称使用$routeName = $request->route()[1]['as'];在UserController的索引方法中,哪个$request是\Illuminate\Http\ request $request类型暗示参数

使用Lumen 5.6。希望它能帮助到一些人。

在一个控制器动作中,你可以这样做:

public function someAction(Request $request)
{
    $routeName = $request->route()->getName();
}

$request是由Laravel的服务容器解析的。

getName()仅返回已命名路由的路由名,否则为空(但您仍然可以探索\Illuminate\Routing\ route对象以获得其他感兴趣的内容)。

换句话说,你应该像这样定义你的路由,并返回"nameOfMyRoute":

Route::get('my/some-action', [
    'as' => 'nameOfMyRoute',
    'uses' => 'MyController@someAction'
]);

要求::路径();更好,记住使用Request;

在laravel 7或8使用辅助功能

获取当前路由名

request()->route()->getName()

要检查路由是否是当前最好创建自己的方法为请求类使用宏

在AppServiceProvider中启动方法:

use Illuminate\Support\Facades\Request;
public function boot()
    {
        Request::macro('isCurrentRoute', function ($routeNames) {
            $bool = false;
            foreach (is_array($routeNames) ? $routeNames : explode(",",$routeNames) as $name) {
               if(request()->routeIs($name)) {
                   $bool = true;
                   break;
                }
             }

             return $bool;
        });
    }

您可以在刀片或控制器中使用此方法

request()->isCurrentRoute('foo') // string route
request()->isCurrentRoute(['bar','foo','xyz.*']) //array routes
request()->isCurrentRoute('blogs,foo,bar,xyz.*') //string route seperated by comma

您可以使用内置laravel路由方法

request()->routeIs('home');
request()->routeIs('blogs.*'); //using wildcard

在5.2中,你可以直接使用请求:

$request->route()->getName();

或者通过helper方法:

request()->route()->getName();

输出的例子:

"home.index"