我可以在laravel路由中省略可选参数吗?

时间:2015-09-09 08:53:50

标签: php laravel routing

这是代码:

Route::get('diagram', 'DiagramController@showDiagram');
Route::get('diagram/{type}', 'DiagramController@showDiagram');
Route::get('diagram/{type}/{template}', 'DiagramController@showDiagram');
Route::get('diagram/{type}/{template}/{offset}', 'DiagramController@showDiagram');

以下是我希望它的样子:

Route::get('diagram/{type}/{template}/{offset}', 'DiagramController@showDiagram');

有没有办法告诉Laravel所有上述参数都不必在url中给出?或者我必须在上面用四行声明它?

1 个答案:

答案 0 :(得分:2)

您不必为此写四行,请查看Laravel上的Routing documentation

所以在你的情况下,你可以写

Route::get('diagram/{type?}/{template?}/{offset?}', 'DiagramController@showDiagram');

您只需在每个可选参数的末尾添加?