2016-02-29 9 views
5

Ich habe 3 Module in App-Ordner wie: Benutzermodul, Rollenmodul und Berechtigungsmodul. Auch habe ich verschiedene route.php-Datei in jedem Modul. Jetzt muss ich eine Routenliste vom Benutzermodul bekommen.Wie bekomme ich eine Liste von Routen von einem Modul/Verzeichnis in Laravel 5?

ich diesen Code eine vollständige Liste von allen Modulen bekam mit:

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

Statt alle Routen, ich möchte eine Liste von Routen von einem bestimmten Modul bekommen oder ein bestimmtes Verzeichnis als User Module.

Wie bekomme ich eine Liste der Routen für einen bestimmten Ordner/Modul/Datei?

+0

@AlexeyMezenin :: sicher werde ich. Ich war in den letzten Tagen nicht mehr bei meiner Arbeit. Entschuldigung. –

Antwort

2

Wenn Sie demselben Controller in den Routen verwenden Sie finden möchten, können Sie etwas tun:

$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>"; 
} 

Nun, Sie auf die Idee kam. Sie können denselben Ansatz verwenden, um nach anderen Informationen in der Route::getRoutes() Auflistung zu suchen.

UPDATE:

Wenn Sie alle Routen greifen, die UserController verwenden, können Sie etwas tun:

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

Dann können Sie es mit for oder foreach laufen.

+0

Ich konnte die Zeile "$ controller = $ value-> getAction() ['controller'] nicht verstehen;" . Würdest du bitte etwas mehr ausarbeiten? –

+0

Haben Sie es versucht? Wenn es nicht funktioniert, versuchen Sie '$ action = $ value-> getAction(); $ controller = $ action ['controller']; ' –

+0

Sein zurückkehrender Fehler:" Undefinierter Index: controller ". Kann ich etwas übersehen haben? $ action = $ wert-> getAction(); $ controller = $ action ['controller']; –