Dcat-admin添加顶部右侧按钮

Laravel框架
476
0
0
2022-04-11
标签   Dcat Admin
第一步创建对应的视图文件
在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中,可以根据自己的需求存储到对应的位置