第一步创建对应的视图文件
在resource/view/admin/创建对应的视图文件nav.blade.php(视图文件可以自定义)
视图文件中写入对应的前端代码
<ul class="nav navbar-nav">
<li class="dropdown dropdown-language nav-item">
<a class="dropdown-toggle nav-link" href="#" id="dropdown-flag" data-toggle="dropdown">
<i class="flag-icon flag-icon-us"></i>
<span class="selected-language">
@switch(config('app.locale'))
@case('zh_CN')
简体中文
@break
@case('en')
English
@break
@endswitch
</span>
</a>
<ul class="dropdown-menu" aria-labelledby="dropdown-flag">
<li class="dropdown-item" href="#" data-language="zh_CN">
<a><i class="flag-icon flag-icon-fr"></i> 简体中文</a>
</li>
<li class="dropdown-item" href="#" data-language="en">
<a><i class="flag-icon flag-icon-us"></i> English</a>
</li>
</ul>
</li>
</ul>
<input type="hidden" name="token" id="token" value="{{ csrf_token() }}">
<script>$('.dropdown-item').on('click', function() {
let lang = $(this).attr('data-language')
let token = $("#token").val();
$.ajax({
url: '{{ url('admin/setLang') }}',
type: 'post',
data: {
'lang': lang,
'_token': token
},
success: function(data) {
if (data.code != 0) {
alert(data.msg)
return false;
} else {
window.location.reload();
}
}
})
})
</script>
第二步在app/Admin/bootstrap.php中加入如下代码
Admin::navbar(function (Navbar $navbar) {
$navbar->right(view('admin.nav'));
});
刷新页面就可以看到如下内容
第三步在对应的控制器中添加如下代码
public function setLang(Request $request)
{
$lang = $request->get('lang');
$request->session()->put('lang', $lang);
return response()->json(['code' => 0], 200);
}
第四步在dcat初始化文件(app/admin/bootstrap.php)中添加如下代码
$lang = session('lang') ? session('lang') : 'zh_CN';
config([
'app.locale' => $lang
]);
第三,第四步我是存到session中,可以根据自己的需求存储到对应的位置