我可以在 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');
您只需在每个可选参数的末尾添加一个?
。
代码如下:
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');
您只需在每个可选参数的末尾添加一个?
。