2016-02-29 15 views
5

Ho 3 moduli nella cartella app come: Modulo utente, Modulo ruolo e Modulo autorizzazione. Inoltre ho un diverso file route.php in ogni modulo. Ora ho bisogno di ottenere una lista di rotte dal modulo utente.Come posso ottenere un elenco di percorsi da un modulo/directory in Laravel 5?

ho ottenuto un elenco completo di tutti i moduli usando questo codice:

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

Invece di tutte le rotte, voglio ottenere un elenco di percorsi da un modulo specifico o una directory specifica come modulo utente.

Come si ottiene un elenco di percorsi per una cartella/modulo/file specifico?

+0

@AlexeyMezenin :: certo che lo farò. Ero fuori dal lavoro da un paio di giorni. Scuse. –

risposta

2

Se si utilizza stesso controller nei percorsi che si desidera trovare, si può fare qualcosa di simile:

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

Bene, è venuta l'idea. Puoi utilizzare lo stesso approccio per cercare qualsiasi altra informazione nella collezione Route::getRoutes().

UPDATE:

Se si vuole afferrare tutte le rotte che utilizzano UserController, si può fare qualcosa di simile:

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

Quindi è possibile scorrere con for o foreach.

+0

Non riesco a capire la riga "$ controller = $ valore-> getAction() ['controller'];" . Potresti per favore elaborare un po 'di più? –

+0

Hai provato? Se non funziona, prova '$ action = $ value-> getAction(); $ controller = $ action ['controller']; ' –

+0

Il suo ritorno ERRORE:" Indice indefinito: controller ". posso aver perso qualcosa? $ azione = $ valore-> getAction(); $ controller = $ azione ['controller']; –

Problemi correlati