现在,我编写示例路线,无需对我的 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/web.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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)