Я хочу создать 3 различных маршрутов, как это:Дополнительные маршруты с черточками
Route::get('schedule',['as'=>'schedule.view','uses'=>'[email protected]']);
Route::get('schedule/{year}-{month}',['as'=>'schedule.view','uses'=>'[email protected]'])
->where('year','\d{4}')
->where('month','0[1-9]|1[0-2]');
Route::get('schedule/{year}-{month}-{day}',['as'=>'schedule.view','uses'=>'[email protected]'])
->where('year','\d{4}')
->where('month','0[1-9]|1[0-2]')
->where('day','0[1-9]|[12][0-9]|3[01]');
т.е., вы можете предоставить один из:
- не год/месяц/день
- год & месяц
- год, месяц & день
Маршруты работают как -то, когда я ссылаюсь на них с route('schedule.view', ['2015','01','01])
, но если я опускаю параметры, которые он пытается связать с /schedule/{year}-{month}-{day}
(с фигурами на самом деле там!).
Есть ли способ заставить laravel вести себя умнее или мне нужно дать каждому из моих маршрутов другое имя?
Hrm. Я полагал, что это должно было произойти с ошибкой, если бы я переопределил название маршрута. Я подумал, может быть, это может быть умно и рассмотреть количество аргументов. Или, может быть, я мог бы переписать маршрут каким-то образом, например 'schedule/{{year} - {month}}? {- {day}}?'. Ну что ж. Это не большое дело, спасибо! – mpen
Похоже, было бы целесообразно генерировать исключение, если несколько маршрутов определены с тем же именем да. Возможно, есть другая функциональность, которая фактически работает с несколькими маршрутами на имя idk. Определение одного маршрута с необязательными параметрами может быть альтернативным решением yep. –