Laravel可选路由参数

时间:2014-12-07 14:37:24

标签: laravel routes

Route::get('dashboard/{path?}', function($path= null)
{
    return $path;
});

是的,这是有道理的

如果网址是

dashboard/movies/funny/../..

得到NotFoundHttpException

1 个答案:

答案 0 :(得分:7)

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

如果你有一个有限数量的路径级别,你可以这样做:

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

然而,这不是非常优雅也不是动态的,你的例子表明可以有很多路径级别。您可以使用where约束来允许route参数中的斜杠。所以这条路线基本上会捕捉以dashboard

开头的所有内容
Route::get('dashboard/{path?}', function($path= null){
    return $path;
})->where('path', '(.*)');