Laravel 5:如何获取所有路线的路径?

Posted

技术标签:

【中文标题】Laravel 5:如何获取所有路线的路径?【英文标题】:Laravel 5: how to get the paths of all routes? 【发布时间】:2016-05-09 20:41:15 【问题描述】:

我需要以编程方式获取所有路线的路径列表。

我尝试了Route::getRoutes() - 无法在 L5 中工作。 RouteCollection::getRoutes() - 不是静态方法。

我打赌我可以从$request 获得RouteCollection,但我不知道如何。

【问题讨论】:

【参考方案1】:

Route::getRoutes(); 应该可以工作,您可能忘记导入路由类(外观)。然后你迭代列表:

$routeList = Route::getRoutes();

foreach ($routeList as $value)

    echo $value->getPath();

记得导入

use Illuminate\Support\Facades\Route;

这是在 Laravel 5.2 上测试的

Documenation

【讨论】:

这行得通!谢谢你。我没有包含“use”语句,所以似乎使用了另一个 Route 类。 嘿,它在 laravel 5.4 中不起作用,我应该使用什么代码。 @nikeshadhikari 查看 5.4 的扩展坞,它仍然存在 laravel.com/api/5.4/Illuminate/Routing/RouteCollection.html getPath() 在 laravel 5.4 中不起作用。我该如何解决这个问题?【参考方案2】:

第一

use Illuminate\Support\Facades\Route;

所有路线都使用此代码

$routeList=Route::getRoutes();
    foreach ($routeList as $value) 
        echo $value->getPath();
    

对于当前路线名称,请使用此代码

$currentPath= Route::getFacadeRoot()->current()->uri();

有关详细信息,请阅读这两个帖子, All Routes

和Current Route

【讨论】:

以上是关于Laravel 5:如何获取所有路线的路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 5.7 中获取当前视图名称(页面名称)

如何在 Laravel 5.3 中获取当前的语言环境

Laravel 5:404 路线上的会话

Laravel 5.3 和智威汤逊。对于所有获取路线,我都会收到 "error": "token_not_provided"

如何在刀片文件 laravel 5.6 中获取当前路由名称

Laravel 根据哪个路径路由条件,如何获得正确的路径