如何获取laravel 5.5中的Web路由列表?

时间:2018-01-14 12:27:04

标签: php laravel laravel-5.5

我尝试过以下操作,但返回值为空。

<?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路由文件中创建的路由

2 个答案:

答案 0 :(得分:2)

这将提供有关routes

的所有详细信息
$routes = app('router')->getRoutes();

return  $arrays=(array) $routes;

答案 1 :(得分:0)

如果要在控制器中使用它们以编程方式使用,则可以通过Route :: getRoutes()通过Route Class访问它们。

    use \Route;
    dd(Route::getRoutes());

要查看/分析路由列表,我只需在应用程序的根目录中使用artisan命令行:

php artisan route:list

如果你有bash,你甚至可以用grep查找特定路线。

php artisan route:list |grep users

希望这有帮助。