Laravel 8 中具有相同开头 URL 的两个路由变量
Two route variables with the same start URL in Laravel 8
是否可能有两个变量和 URL 的相同开头?
我的意思是 'turnaje/{tournament}'
和 'turnaje/{region}'
。
Route::get('/turnaje', [TournamentController::class, 'index']);
Route::get('/turnaje/pridat', [TournamentController::class, 'create'])
->middleware('auth');
Route::get('/turnaj/{tournament}', [TournamentController::class, 'show']);
Route::get('/turnaje/{region}', [TournamentController::class, 'show_region']);
Route::resource('turnaje', TournamentController::class)
->parameters(['tournaments' => 'tournaments:slug'])
->except(['index', 'show', 'choose', 'create'])
->middleware('auth');
不不可能,因为Laravel迷茫之后,不知道zou想要什么
这可以通过两种方式实现
如果参数可以通过https://laravel.com/docs/8.x/routing#parameters-regular-expression-constraints解析(一个有数字id,第二个有slug,等等)
或者创建由所需参数解析的共享控制器
- 在区域中查找
- 如果找不到,在比赛中查找
- 不能使用隐式绑定,必须使用字符串
但我建议按路线拆分它 /{region}/turnaje
是否可能有两个变量和 URL 的相同开头?
我的意思是 'turnaje/{tournament}'
和 'turnaje/{region}'
。
Route::get('/turnaje', [TournamentController::class, 'index']);
Route::get('/turnaje/pridat', [TournamentController::class, 'create'])
->middleware('auth');
Route::get('/turnaj/{tournament}', [TournamentController::class, 'show']);
Route::get('/turnaje/{region}', [TournamentController::class, 'show_region']);
Route::resource('turnaje', TournamentController::class)
->parameters(['tournaments' => 'tournaments:slug'])
->except(['index', 'show', 'choose', 'create'])
->middleware('auth');
不不可能,因为Laravel迷茫之后,不知道zou想要什么
这可以通过两种方式实现
如果参数可以通过https://laravel.com/docs/8.x/routing#parameters-regular-expression-constraints解析(一个有数字id,第二个有slug,等等)
或者创建由所需参数解析的共享控制器
- 在区域中查找
- 如果找不到,在比赛中查找
- 不能使用隐式绑定,必须使用字符串
但我建议按路线拆分它 /{region}/turnaje