2016-10-21 5 views
1

Здравствуйте, я пытаюсь сделать это так, но он получает все маршруты, мне нужны только маршруты из определенной группы (групп).Как получить список маршрутов по определенным группам в laravel 5?

Это мой код:

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

Заранее спасибо!

+1

например, –

+0

: у меня есть столбец с именами разрешений в моей таблице, в которых я буду хранить некоторые конкретные маршруты, относящиеся к определенной группе маршрутов. –

ответ

1

// Давайте есть некоторые маршрут без какой-либо группы

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

Route::get('/load', '[email protected]'); 

// Теперь создадим несколько маршрутов с группами

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

Смежные вопросы