gpt4 book ai didi

Laravel:如何为本地化创建正确的路由组?

转载 作者:行者123 更新时间:2023-12-02 11:19:06 24 4
gpt4 key购买 nike

现在,我编写了示例路由,无需对 Laravel 项目进行本地化分组:

Route::get('/{lang?}', function($lang=null){
App::setlocale($lang);
return view('welcome');
});

如何在 Laravel 5.6 中为更多一种带有前缀或参数而不是前缀或域路由的语言正确创建路由组?并且可以在前缀和域路由示例中创建本地化:
http://website.com/en
http://en.website.com

最佳答案

好吧,这是我最好的尝试:

保留所有路线定义,例如web.php
然后,您可以在 RouteServiceProvider 中使用多域路由。 :

Route::group([ 
'domain' => '{lang}.example.com'
'middleware' => LangMiddleware::class,
'namespace' => $this->namespace // I guess?
], function ($router) {
require base_path('routes/web.php');
});

此外,使用相同的路由,您还可以使用前缀路由组:
Route::group([
'middleware' => LangMiddleware::class,
'namespace' => $this->namespace,
'prefix' => {lang} //Note: This works but is undocumented so may change
], function ($router) {
require base_path('routes/stateless.php');
});

这一切都依赖于 LangMiddleware中间件类可以是这样的:
class LangMiddleware {
public function handle($request, $next) {
if ($request->route("lang")) {
// also check if language is supported?
App::setlocale($request->route("lang"));
}
return $next($request);
}
}

关于Laravel:如何为本地化创建正确的路由组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49380343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com