2016-04-07 2 views
2

Je voudrais appeler une fonction d'un contrôleur à tous les itinéraires commencent par my_website/doc /.Laravel route regex

Mais je ne peux pas trouver quelque chose qui à faire dans Laravel 5.

quelque chose comme: Route::get('my_website/doc/*', '[email protected]');

pour exemple:

my_website/doc/test --> [email protected] 

my_website/doc/test/1 --> [email protected] 

my_website/doc/test/1/etc --> [email protected] 
+1

double possible de [l'aide d'une expression régulière pour correspondre à une sous-chaîne dans un itinéraire Laravel] (http://stackoverflow.com/questions/27198019/using- a-regex-to-match-a-substring-in-a-laravel-route) –

Répondre

2

Vous pouvez utiliser comme cette

Route::get('my_website/docs/{page?}', '[email protected]'); 

{page?} sera

  • test pour my_website/doc/test
  • test/1 pour my_website/doc/test/1
  • test/1/etc pour my_website/doc/test/1/etc

A doc méthode

public function doc($page = null) 
{ 
    dd($page); 
} 
+3

Non. Dès qu'il touche le '/', il lance un 404. Vous devez ajouter '-> where()' à la définition de votre route. – Dencker

1

C'est une autre approche pour résoudre le problème:

Route::get('{slug}', function($slug){ 
    dd($slug); 
    // 
})->where('slug', 'my_website/docs.*');