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 和智威汤逊。对于所有获取路线,我都会收到 "error": "token_not_provided"