我正在尝试更改路线中的区域设置,但区域设置始终设置为“en”
Route::group(['prefix' => 'fr'], function (){
App::setLocale('fr');
Route::get('/home', 'HomeController@index');
});
Route::group(['prefix' => 'en'], function (){
App::setLocale('en');
Route::get('/home', 'HomeController@index');
});
fr / home getLocale返回'en'
en / home getLocale返回'en'
Route::prefix('fr')->group(function () {
App::setLocale('fr');
Route::get('home', 'HomeController@index');
});
Route::prefix('en')->group(function () {
App::setLocale('en');
Route::get('home', 'HomeController@index');
});
有同样的问题
答案 0 :(得分:2)
您无法在Group
方法中定义区域设置。它只会导致最后一个语言环境适用。
相反,您可以关注original guide并为每个方法实施路由,例如文档说:
Route::get('{locale}/home', function ($locale) {
App::setLocale($locale);
//
});
或创建一个middleware组,用于定义正确的语言。
答案 1 :(得分:0)
为什么不使用文档中的标准格式?
Route::prefix('admin')->group(function () {
Route::get('users', function () {
// Matches The "/admin/users" URL
});
});
https://laravel.com/docs/5.6/routing#route-group-prefixes
要注意的另一件事是检查您的NGINX conf文件或apache .htaccess文件。他们可以做不想要的重定向。