Есть несколько URL
Route::get('part/{slug}', [App\Http\Controllers\PartsController::class, 'part'])->name('part');
Route::get('parts', [App\Http\Controllers\PartsController::class, 'parts'])->name('parts');
Route::get('spare-cars/{marka?}/{model?}/{slug?}', [App\Http\Controllers\CarController::class, 'spareCars'])->name('spare.cars');
Мне нужно указать город перед каждым URL-адресом, например
site.ru/ekaterinburg/part
- города указываются динамически, при этом надо за неимением города подставлять автоматически, например
Заходим на адрес site.ru/part
- редирект на дефолтное значение города - site.ru/moskva/part
и аналогично с другими адресами
Как это можно сделать?
Ответить
Спасибо @shaedrich
Добавил все маршруты в группу и добавил обработку звонков по ссылкам без городов
Route::prefix('{city?}')->group(function() {
Route::get('part/{slug}', [App\Http\Controllers\PartsController::class, 'part'])->name('part');
Route::get('parts', [App\Http\Controllers\PartsController::class, 'parts'])->name('parts');
Route::get('spare-cars/{marka?}/{model?}/{slug?}', [App\Http\Controllers\CarController::class, 'spareCars'])->name('spare.cars');
Route::get('/', [App\Http\Controllers\PartsController::class, 'checkUrl'])->name('checkUrl');
});
public function checkUrl($slug) {
if($slug == 'parts') {
return redirect('moskva/parts');
} else if($slug == 'part') {
return redirect('moskva/part');
}
}
Спасибо, дополнил ответ своим решением, по вашему ответу
Пожалуйста. Я также обновил свой ответ, чтобы он мог помочь вам с дополнительным значением по умолчанию.