2016-11-07 2 views
1

J'ai un groupe de route sous un préfixe admin:Laravel 5.3: Comment mapper toutes les URL sous un préfixe à une méthode de contrôleur?

Route::group(['prefix' => 'admin'], function(){ 
    Route::get('/', '[email protected]'); 
}); 

Je voudrais une URL comme /admin/dashboard/ et /admin/blogmanager/, essentiellement, une URL arbitraire sous le préfixe admin à cartographiés au même contrôleur method sans énumérer chaque URL un par un. Je voudrais un modèle d'URL pour accepter toutes les urls tant qu'il est préfixé par admin

Répondre

1

Vous pouvez le faire avec la méthode Route::controller() mais il a été retiré de Laravel et je pense que c'est pour de bon, car toutes les routes doivent être explicites.

Vous pouvez utiliser Route::resource() pour les contrôleurs CRUD.

+1

Ok, merci. Votre réponse m'a fait réaliser que cela peut être un problème de conception. – TaeKwonDev

0

Vous pouvez utiliser {any} Syntaxe:

Route::group(['prefix' => 'admin'], function(){ 
    Route::get('{any}', '[email protected]'); 
}); 

Chaque itinéraire avec admin préfixe sera géré par AdminController.

Si vous voulez urls comme:/admin/profil/poste, ... Utilisation:

Route::get('{any}', '[email protected]')->where('any', '.*'); 
0

Vous pouvez utiliser ceci:

Route::group(['prefix' => 'admin'], function(){ 
    Route::get('{any_url?}', '[email protected]'); 
}); 

Avec tout cela itinéraire avec admin préfixe sera géré par AdminController. Et votre AdminController devrait ressembler à ceci.

Class AdminController extends Controller{ 

     public function method($any_url = NULL){ 
     //Put some conditions here 
     } 
}