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

Can I omit optional parameter in 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 中给出上述所有参数?或者我必须像上面那样分四行声明吗?

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

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

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

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