我想为现有的laravel项目添加多语言功能。目前我有以下路线:
$user_route = function() {
....
};
Route::group([
'prefix' => ''
], $user_route
);
Route::group([
'prefix' => '{language}',
'middleware' => 'set.lang'
], $user_route
);
每个锚使用来自Laravel的route()
助手。因为我有使用'语言的路线'前缀,我需要从$language
传递route()
。有很多route()
,我不认为更新到route('name', ['language' => \App::getLocale()])
的每条路线都是不错的选择。该项目已经有Helper类,我计划用我的自定义方法覆盖route()
方法Illuminate\Routing\UrlGenerator
。这就是我的尝试:
的functions.php
use Illuminate\Routing\UrlGenerator as Url;
....
function route($name, $parameters = [], $absolute = true)
{
$parameters = array_add($parameters, 'language', \App::getLocale());
$url = new Url();
return $url->route($name, $parameters, $absolute);
}
显然会返回错误:
FatalErrorException in Functions.php line 158:
Cannot redeclare route() (previously declared in
C:\...\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php:693)
我读到Service Container,但就我的理解而言,仅用于管理类依赖项和执行依赖项注入。如何正确处理?非常感谢你的帮助。