У меня есть следующие маршруты, которые отлично работают:
Route::get('/de', 'FrontpageController@index');
Route::get('/fr', 'FrontpageController@index');
План состоял в том, чтобы объединить их в одно утверждение, как описано в этом, по-видимому, рабочем решении: https://stackoverflow.com/a/34404404/4688612
Таким образом, новый код выглядит следующим образом:
Route::get('/{url}', 'FrontpageController@index')->where('url', 'de|fr');
Но я получаю This page isn’t working. example.test redirected you too many times.
Что я не получаю здесь?
Метод индекса выглядит следующим образомэто:
public function index(Request $request){
$geoIpRecord = getGeoIpRecord();
$nearest_places = getNearestPlaces( $geoIpRecord->location->latitude, $geoIpRecord->location->longitude );
if($request->path() == 'de'){
$page_title = 'Titel';
$phone = constant('default_phone_de');
return view('partials.main', compact('nearest_places', 'page_title', 'phone'));
} elseif ($request->path() == 'fr') {
$page_title = 'Titre';
$phone = constant('default_phone_fr');
return view('fr.partials.main', compact('nearest_places', 'page_title', 'phone'));
}
}
Редактировать :
Тем временем я обнаружил, что используемый мной пакет локализации как-то влияет на параметр /{url}
.
При использовании следующего кода в моем web.php
параметр /{url}
перестает работать.Это просто становится игонредным.
Route::group(
[
'prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localize', 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath' ]
],
function()
{
Route::get('/', function()
{
return redirect(LaravelLocalization::getCurrentLocale());
});
});
Лично я считаю, что это ошибка, и поэтому связался с разработчиком этого пакета localizaiton.