如何在 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')-&gt;getRoutes()-&gt;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 中获取验证消息

Laravel 5.5登录后重定向到特定路由

Laravel 5.5 中的多字段排序

如何在 laravel 5.5 中使用 phpunit 测试中间件?

如何在laravel 5.5中使用令牌从JWTAuth获取用户

Laravel 5.5 路由中的模型绑定不起作用