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

标签 laravel laravel-5

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

这是我的代码:

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

提前致谢!

最佳答案

让我们创建一些没有任何组的路线

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;
        });


  // Here we will print the array containing the route objects in the 'admin' group
        dd($grouped_routes);
    });

});

现在您可以将其复制并粘贴到您的路线文件夹中,然后您将能够通过点击 your_project_public_folder_url/kumar 来查看输出

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

关于laravel - 如何在 laravel 5 中获取特定组的路线列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40169676/

相关文章:

php - 在 Laravel 中执行准备好的原始 SQL

laravel - Laravel 4 中的自动加载助手

validation - Laravel,返回带有Request::old的 View

php - 试图在laravel中获取非对象错误的属性

laravel - 更改 Laravel 的 Gulp/Elixir `watch` 任务

php - 如何找到 Laravel 外观背后的底层类?

php - PHP邮件函数是同步的还是异步的?

php - Laravel 5 - 从 URL 中删除公共(public)

php - 在vendor\laravel\framework\src\Illuminate\Container\Container.php中未捕获异常 'ReflectionException',消息为 'Class config does not exist'

laravel-5 - 未找到类 'Symfony\Component\HttpFoundation\ParameterBag'