#laravel #localization
#laravel #локализация
Вопрос:
Я сделал то, что написано в этом посте, чтобы добавить префиксы локализации к своим URL-адресам. Однако, когда я посещаю «/» появляется ошибка: NotFoundHttpException in RouteCollection.php line 161:
.
Это мой Routesfile web.php
:
Route::get('/', ['uses' => 'MainController@showMainPage', 'as' => 'showMainPage']);
Route::group(['prefix' => 'backend'], function () {
Route::get('/login', ['uses' => 'UserController@agentLogin', 'as' => 'agentLogin']);
});
Функция:
class MainController extends Controller
{
public function showMainPage()
{
return redirect()->route('/fr');
}
}
localhost:8000/fr
и localhost:8000/en
работают нормально.
Как я могу перенаправить /
на резервную локаль ( /fr
)?
Ответ №1:
Вы можете попробовать сделать параметр lang необязательным:
'prefix' => '{lang?}'
Комментарии:
1. Да, это перенаправляет меня на / fr, однако страница прерывается из-за слишком большого количества перенаправлений. Я знаю почему, но не как я мог бы это решить
2. @Scarwolf а как насчет url
localhost:8000/fr
? Правильно ли это работает? Толькоlocalhost:8000
приводит к слишком большому количеству перенаправлений?3. Упс, пришлось заменить перенаправление на
route()
. Теперь все работает нормально, спасибо!4. Ссылки на мои маршруты отображаются с
/en
в URL-адресах при включенииlocalhost:8000
без/fr
, хотя я установил резервную локаль на fr. Вы знаете, почему? Ссылка на моем маршруте выглядит следующим образом:{{ route('agentLogin') }}
. Маршрут вweb.php
: ` Route::get(‘/login’, [‘uses’ => ‘UserController@agentLogin’, ‘as’ => ‘agentLogin’]);` Даже когда на странице/fr
он отображается/en
по ссылкам. Работал до того, как сделать переменную lang необязательной5. Вы решаете эту проблему? Какой
'locale' =>
параметр у вас есть вapp.php
?