2014-12-07 147 views
0
Route::get('dashboard/{path?}', function($path= null) 
{ 
    return $path; 
}); 

是的,这是有道理的Laravel可选路由参数

如果什么网址是

dashboard/movies/funny/../..

NotFoundHttpException

回答

7

每默认的路由参数不能包含任何斜杠,因为多个路由参数或段由斜杠分隔。

如果你有路径水平有限数目的你可以这样做:

Route::get('dashboard/{path1?}/{path2?}/{path3?}', function($path1 = null, $path2 = null, $path3 = null) 

然而,这是不是很优雅,也没有动,你的例子表明可以有很多路径水平。您可以使用where约束来允许路由参数中的斜杠。所以这条路线基本上会抓住所有以dashboard

Route::get('dashboard/{path?}', function($path= null){ 
    return $path; 
})->where('path', '(.*)'); 
+0

是啊这就是谢谢你 – 2014-12-07 14:57:08