Laravel prefix 语言前缀如果有
Laravel prefix language prefix if it has
我想在 Laravel 中使用语言选择器。我使用了这个解决方案:Laravel optional prefix routes with regexp。
它工作正常。我将位置存储在数据库中,例如:en, de。 只有当网站在数据库中设置了多种语言时,我才想使用前缀。那么如果我只有一种语言,我该如何防止使用'prefix' => '{lang?}'
。
这是我的web.php(路线):
Route::group(['prefix' => '{lang?}', 'middleware' => 'locale', 'where' => ['lang' => "en|de"], function () {
Route::get('/', 'HomeController@index');
Route::get('article', 'ArticlesControllerController@index');
});
使用 1 种语言:
/home
/article
多语言:
/en/home
/de/home
/en/article
/de/article
那么在这种情况下,你可以使用闭包函数和if条件。根据值设置前缀,因为可以为所有路由声明闭包,并添加一次带前缀和一次不带前缀:
$languageList = 'fr|en';
$optionalLanguageRoutes = function() {
Route::get('/test', 'DashboardController@test');
};
// Add routes with lang-prefix
if ($languageList) {
Route::group(
['prefix' => '/{lang}/', 'where' => ['lang' => $languageList]],
$optionalLanguageRoutes
);
}
// Add routes without prefix
$optionalLanguageRoutes();
当您没有语言时声明空语言列表。
我想在 Laravel 中使用语言选择器。我使用了这个解决方案:Laravel optional prefix routes with regexp。
它工作正常。我将位置存储在数据库中,例如:en, de。 只有当网站在数据库中设置了多种语言时,我才想使用前缀。那么如果我只有一种语言,我该如何防止使用'prefix' => '{lang?}'
。
这是我的web.php(路线):
Route::group(['prefix' => '{lang?}', 'middleware' => 'locale', 'where' => ['lang' => "en|de"], function () {
Route::get('/', 'HomeController@index');
Route::get('article', 'ArticlesControllerController@index');
});
使用 1 种语言:
/home
/article
多语言:
/en/home
/de/home
/en/article
/de/article
那么在这种情况下,你可以使用闭包函数和if条件。根据值设置前缀,因为可以为所有路由声明闭包,并添加一次带前缀和一次不带前缀:
$languageList = 'fr|en';
$optionalLanguageRoutes = function() {
Route::get('/test', 'DashboardController@test');
};
// Add routes with lang-prefix
if ($languageList) {
Route::group(
['prefix' => '/{lang}/', 'where' => ['lang' => $languageList]],
$optionalLanguageRoutes
);
}
// Add routes without prefix
$optionalLanguageRoutes();
当您没有语言时声明空语言列表。