2016-02-29 5 views
5

У меня есть 3 модуля в папке приложения, такие как: модуль пользователя, модуль ролей и модуль разрешений. Также у меня есть другой файл route.php в каждом модуле. Теперь мне нужно получить список маршрутов из User Module.Как получить список маршрутов из модуля/каталога в Laravel 5?

Я получил полный список из всех модулей, использующих этот код:

$routeCollection =Route::getRoutes(); 
    foreach ($routeCollection as $value) { 
     echo $value->getPath()."<br>"; 
    } 

Вместо того, чтобы все маршруты, я хочу, чтобы получить список маршрутов из определенного модуля или в определенном каталоге в качестве модуля пользователя.

Как получить список маршрутов для определенной папки/модуля/файла?

+0

@AlexeyMezenin :: уверенный будет. За последние пару дней я был вне работы. Извиняюсь. –

ответ

2

Если вы используете тот же контроллер в маршрутах, которые вы хотите найти, вы можете сделать что-то вроде этого:

$routeCollection = \Route::getRoutes(); 

foreach ($routeCollection as $value) { 
    $lookFor = 'UserController'; 
    $controller = $value->getAction(); 
    $controller = $controller['controller']; 

    if (strpos($controller, $lookFor)) { 
     echo "This route uses UserController controller "; 
    } 

    echo $value->getPath()."<br>"; 
} 

Ну, вы получили эту идею. Вы можете использовать такой же подход для поиска любой другой информации в коллекции Route::getRoutes().

UPDATE:

Если вы хотите, чтобы захватить все маршруты, которые используют UserController, вы можете сделать что-то вроде этого:

$routeCollection = \Route::getRoutes(); 
$userRoutesArray = []; 

foreach ($routeCollection as $value) { 
    $lookFor = 'UserController'; 
    $controller = $value->getAction(); 
    if(isset($controller['controller'])){ 
     $controller = $controller['controller']; 
    }else{ 
     continue; 
    } 

    if (strpos($controller, $lookFor)) { 
     array_push($userRoutesArray, $value->getPath(); 
    } 
} 

Затем вы можете перебирать его for или foreach.

+0

Я не мог понять строку «$ controller = $ value-> getAction() ['controller'];" , Не могли бы вы рассказать немного больше? –

+0

Вы попробовали? Если он не работает, попробуйте '$ action = $ value-> getAction(); $ controller = $ action ['controller']; ' –

+0

Его возвращающая ERROR:« Undefined index: controller ». могу я что-то пропустить? $ action = $ value-> getAction(); $ controller = $ action ['controller']; –

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