如何在 laravel 5.5 中获取网络路由列表?
Posted
技术标签:
【中文标题】如何在 laravel 5.5 中获取网络路由列表?【英文标题】:How to get a list of web routes in laravel 5.5? 【发布时间】:2018-06-23 07:00:20 【问题描述】:我尝试了以下但返回为空。
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
public function boot()
$routeList = Route::getRoutes();
foreach ($routeList as $value)
dd($value->getPath());
我的路线文件:
<?php
Route::namespace('admin')->group(function ()
Route::get('admin/post', 'PostController@index')->name('posts');
Route::get('admin/post/new', 'PostController@new')->name('post_new');
Route::post('admin/post/save', 'SubjectController@save')->name('post_save');
);
我尝试了几种方法,但我无法列出在 web.php 路由文件中创建的路由
【问题讨论】:
***.com/questions/18394891/… 尝试控制器功能 @Sohel0415 正如 cmets 中所写,这不适用于 Laravel 5.5 哇!错过那部分 你可能想看看 Pretty Routes 包——即使你不想使用它,也许你可以在它的源代码中找到一个好的解决方案。 :) 链接:github.com/garygreen/pretty-routes 【参考方案1】:这将提供有关routes
的所有详细信息。
$routes = app('router')->getRoutes();
return $arrays=(array) $routes;
【讨论】:
getRoutes()
方法给出了 RouteCollection
对象,其中包含 4 个变量,其中包含重复数据。为了专门获取所有路线,我做了:app('router')->getRoutes()->get();
【参考方案2】:
如果您想在控制器中使用它们以编程方式使用它们,那么您可以通过 Route::getRoutes() 通过 Route 类访问它们。
use \Route;
dd(Route::getRoutes());
但是,要查看/分析路由列表,我只需在应用程序的根目录中使用 artisan 命令行:
php artisan route:list
如果您有 bash,您甚至可以使用 grep 查找特定路线。
php artisan route:list |grep users
希望这会有所帮助。
【讨论】:
php artisan route:list |grep users
很有用。谢谢以上是关于如何在 laravel 5.5 中获取网络路由列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 laravel 5.5 中使用 phpunit 测试中间件?