我想使用英语的路线example.com/en/item
,然后致电example.com/no/item
我当前的控制器:
class LocalizationController extends Controller
{
public function switch($locale)
{
App::setLocale($locale);
session(['locale'=> $locale]);
return redirect()->back();
}
}
web.php:
Route::group(['prefix' => app()->getLocale()], function () {
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/threads', 'ThreadsController@index');
});
Route::get('/lang/{locale}','LocalizationController@switch');
如何保持语言环境在网址中显示?
答案 0 :(得分:0)
return redirect(url()->previous()."?".http_build_query(['locale'=>$locale]));
或
return redirect()->route('home', ['locale' => $locale]);
但是在第二个示例中,您必须为路线创建名称,例如:
Route::get('/lang/{locale}','PagesController@switch')->name('locale');
您将在您的网址中看到以下内容:
更新:
在您的.env集内=>
APP_URL=en
内部app \ Providers \ AppServiceProvider.php
设置此
\URL::forceRootUrl(\Config::get('app.url'));
if (\Str::contains(\Config::get('app.url'), 'https://')) {
\URL::forceScheme('https');
}
返回首页后,您将进入网址