如何在laravel 5中按特定组获取路线列表?

时间:2016-10-21 06:23:15

标签: laravel laravel-5

您好我正在尝试这样做,但它获取了所有路线,我只想要来自特定群组的路线。

这是我的代码:

<?php 
$routes = Routes::getRoutes();
@foreach($routes as $route)
    {{ $route->getPath() }}
@endforeach`

提前致谢!

1 个答案:

答案 0 :(得分:3)

// 让我们有一些没有任何团体的路线

Route::get('/', function () {
    return view('welcome');
});

Route::get('/load', 'defaultController@load');

// 现在创建一些包含

的路线
Route::group(['as' => 'admin'], function () {
    Route::get('users', function ()    {
        return "users route";
    });

    Route::get('ravi', function ()    {
        return "ravi route";
    });

// 现在我们要在这个组中创建一个寻找的路由    //管理员组并打印所有路线的人。

Route::get('kumar', function ()    {
    $name = 'admin';
    $routeCollection = Route::getRoutes(); // RouteCollection object
    $routes = $routeCollection->getRoutes(); // array of route objects

// 现在在我们的路由对象中,我们将通过过滤来查找我们的命名路由    //数组。

 $grouped_routes = array_filter($routes, function($route) use ($name) {
            $action = $route->getAction(); // getting route action
            if (isset($action['as'])) {

                // for the first level groups, $action['as'] 
                //will be a string
                // for nested groups, $action['as'] will be an array

                if (is_array($action['as'])) {
                    return in_array($name, $action['as']);
                } else {
                    return $action['as'] == $name;
                }
            }
            return false;
        });


  // let's print the array containing the route objects in the 'admin' group
        dd($grouped_routes);
    });

});

// **只需将其复制并粘贴到路径文件夹中即可通过点击your_project_public_folder_url / kumar **来查看输出

//我从这个答案中获得了帮助Answer of patricus