Laravel 5:路由中的可选参数

时间:2018-01-23 11:43:00

标签: laravel-5 routes

我正在寻找这个代码的解决方案来使用可选参数。在开头放置的这个参数不再被认为是可选的,但我绝对需要一个解决方案。

目标是按年份存档旧版本的网站(它是音乐节),而不必复制所有的laravel文件......

Route::get('{year?}/lineup', 'HomeController@agenda')->name('agenda');

在这个确切的案例中:

/2018/lineup => works
/lineup => not working

注意:我使用的是Laravel 5.4

一个想法,建议按日期归档旧版本的网站? 档案必须可在线访问。

谢谢

1 个答案:

答案 0 :(得分:0)

如果按此顺序添加它们,则应首先检查与年份的匹配,然后仅查看阵容。然后由你的控制器决定(对于两个路由都相同,不需要额外的文件)来处理输入参数,如果它被设置的话。

Route::get('{year}/lineup', 'HomeController@agenda')->name('agenda.history');
Route::get('lineup', 'HomeController@agenda')->name('agenda.current');