Для настройки Laravel для выбора города через URL можно воспользоваться маршрутизацией и контроллерами.
Во-первых, определите маршрут для выбора города в файле routes/web.php:
```php
Route::get('/city/{city}', 'CityController@show');
```
Здесь `{city}` - это переменная, которая будет содержать название или ID выбранного города.
Затем создайте контроллер CityController с методом show, который будет принимать выбранный город и выполнять соответствующие действия:
```php
class CityController extends Controller
{
public function show($city)
{
// Здесь можно выполнить какие-то действия с выбранным городом
return view('city.show', compact('city'));
}
}
```
Теперь, при переходе по URL типа `http://example.com/city/Paris`, Laravel будет вызывать метод show контроллера CityController и передавать ему название города "Paris".
Чтобы изменить текущий город в URL с учетом нескольких сегментов после него, можно воспользоваться JavaScript и AJAX запросами. Например, при смене значения в селекте с городами можно отправлять AJAX запрос на сервер для обновления URL без перезагрузки страницы:
```javascript
$('#citySelect').change(function() {
var selectedCity = $(this).val();
$.ajax({
url: '/updateCity',
type: 'GET',
data: { city: selectedCity },
success: function(data) {
window.history.pushState('', '', '/city/' + selectedCity);
}
});
});
```
Здесь `#citySelect` - это ID селекта с городами, который отправляет AJAX запрос при изменении значения. В контроллере можно добавить метод updateCity для обновления текущего города:
```php
public function updateCity(Request $request)
{
$city = $request->input('city');
// Здесь можно выполнить какие-то действия с выбранным городом
return response()->json(['status' => 'success']);
}
```
Теперь при смене значения в селекте города, URL будет автоматически обновляться без перезагрузки страницы и сохранять текущий город в URL.