sandulat / laravel-dashboard-template
基础Laravel仪表盘模板
Requires
- php: ^7.1
- illuminate/support: 5.8.*
- laravel/framework: ~5.8.0|~5.9.0
Requires (Dev)
- orchestra/testbench: 3.8.*
- phpunit/phpunit: ^7.0
- dev-master
- v0.1
- dev-dependabot/npm_and_yarn/json5-1.0.2
- dev-dependabot/npm_and_yarn/express-4.18.2
- dev-dependabot/npm_and_yarn/qs-and-express-6.11.0
- dev-dependabot/npm_and_yarn/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/loader-utils-and-webpack-cli-1.4.2
- dev-dependabot/npm_and_yarn/eventsource-1.1.1
- dev-dependabot/npm_and_yarn/url-parse-1.5.10
- dev-dependabot/npm_and_yarn/follow-redirects-1.14.8
- dev-dependabot/npm_and_yarn/ajv-6.12.6
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/dns-packet-1.3.4
- dev-dependabot/npm_and_yarn/browserslist-4.16.6
- dev-dependabot/npm_and_yarn/lodash-4.17.21
- dev-dependabot/npm_and_yarn/ssri-6.0.2
- dev-dependabot/npm_and_yarn/y18n-4.0.1
- dev-dependabot/npm_and_yarn/elliptic-6.5.4
- dev-dependabot/npm_and_yarn/ini-1.3.7
- dev-dependabot/npm_and_yarn/http-proxy-1.18.1
- dev-dependabot/npm_and_yarn/websocket-extensions-0.1.4
- dev-dependabot/npm_and_yarn/acorn-6.4.1
- dev-analysis-XZVdD6
This package is auto-updated.
Last update: 2024-09-04 08:07:41 UTC
README
Laravel仪表盘模板
💫作为包的基本仪表盘模板💫
注意:由于其基于
Blade
构建,因此不适用于单页应用程序。然而,您可以在所有页面上使用Vue/React等组件。
安装
composer require sandulat/laravel-dashboard-template php artisan laravel-dashboard-template:install
注意:更新包时,要重新发布前端资源,请使用:
php artisan laravel-dashboard-template:publish
install
命令将发布前端资源并创建一个新的服务提供者App\Providers\DashboardServiceProvider
。这基本上是模板的主要配置,但首先让我们看看如何在下一节中显示仪表盘。
布局
创建一个路由和一个控制器,该控制器将返回一个视图。在视图中放置以下代码
my_view.blade.php
@extends('laravel-dashboard-template::page') @section('ldt-content') Some content @endsection
注意:
ldt
代表laravel-dashboard-template
。
如您所见,laravel-dashboard-template::page
只是一个布局。除了ldt-content
之外,布局还提供了更多的附加插槽
ldt-head
- 用于CSS、meta等的头部区域。ldt-scripts
- 用于包含JS文件的脚本区域。ldt-topbar-left
- 顶栏的左侧区域。ldt-topbar-right
- 顶栏的右侧区域,紧邻用户下拉菜单。ldt-sidebar-footer
- 侧边栏的底部区域。
为了避免重复这些插槽,最好创建自己的布局来扩展包的布局。
my_layout.blade.php
@extends('laravel-dashboard-template::page') @section('ldt-topbar-right') Language Select @endsection
现在,在您的视图中可以这样做
my_view.blade.php
@extends('my_layout') @section('ldt-content') Some content @endsection
卡片
除了布局之外,该包还提供了一个卡片组件
@component('laravel-dashboard-template::components.card') @slot('title') Dahboard @endslot Content @endcomponent
结果可以在文档顶部的截图中看到。
警报
默认情况下,该包将在布局的content
区域上方显示两种类型的警报。当您使用success
和error
闪存数据重定向时,它们将显示出来。
return back()->with('success', 'My success message.');
return back()->with('error', 'My error message.');
配置
您可以在已安装的提供者App\Providers\DashboardServiceProvider
中配置仪表盘。默认情况下它是空的,因为一切都已经配置好了,因此您可以立即开始构建,但是您可以添加以下方法来开始自定义仪表盘
/** * Topbar user name resolver. * * @return string */ public function userName(): string { return Auth::check() ? Auth::user()->name : 'Guest'; }
/** * Topbar user avatar resolver. * * @return string */ public function userAvatar(): string { if (Auth::check() && Auth::user()->avatar) { return Auth::user()->avatar; } return URL::asset('/vendor/laravel-dashboard-template/images/avatar.svg') }
/** * Sidebar links. * * @return array */ public function sidebarLinks(): array { return [ 'Menu' => [ [ 'label' => 'Users', 'url' => route('users'), 'children' => [ [ 'label' => 'Active Users', 'url' => route('users.active'), ], ], ], ], ]; }
/** * Profile dropdown links. * * @return array */ public function profileDropdownLinks(): array { return [ [ 'label' => 'Edit Profile', 'url' => route('profile'), ], ]; }
/** * Logout the user. * * @param \Illuminate\Http\Request $request * @return void */ public function logout(Request $request): void { Auth::guard()->logout(); $request->session()->invalidate(); }
/** * Action to be performed after logout. * * @return void */ public function loggedOut(): void { // }
/** * Redirect after logout. * * @return \Illuminate\Http\RedirectResponse */ public function logoutRedirect(): RedirectResponse { return redirect('/'); }
注意:此服务提供者中的每个方法都具有依赖注入。
自定义
我尽量将模板分解成尽可能多的组件和部分。只需在您的项目中创建文件夹:resources/views/vendor/laravel-dashboard-template
,然后您就可以从包中复制文件并进行自定义。以下是列表
- 部分/alert.blade.php
- 部分/alert_error.blade.php
- 部分/alert_success.blade.php
- 部分/sidebar.blade.php
- 部分/sidebar_link.blade.php
- 部分/sidebar_logo.blade.php
- 部分/topbar_profile_dropdown.blade.php
- 组件/card.blade.php
- 组件/dropdown.blade.php
- 组件/dropdown_item.blade.php
- 组件/topbar.blade.php
使用Vue/React等组件
包裹仪表盘的主要div具有一个app
id。您可以将前端框架加载到这个id上,并在所有页面上开始使用您的组件。
// Vue new Vue({ el: '#app', }); //React ReactDOM.render(<App />, document.getElementById('app'));
编译前端资源后,您可以像这样包含它们
@section('ldt-head') <link href="{{ mix('/css/app.css') }}" rel="stylesheet"> @endsection @section('ldt-scripts') <script src="{{ mix('/js/app.js') }}"></script> @endsection
注意:如果您没有前端资源版本化,您可能希望使用
asset()
方法而不是mix()
。
自定义退出按钮
您可以通过将display: none;
应用于id #ldt-logout-button
来隐藏默认的退出按钮。该模板已提供带有可自定义回调的退出系统,因此您可以加以利用。只需使用JavaScript提交默认的“隐藏”退出表单。
document.getElementById("ldt-logout-form").submit();
鸣谢
由 Stratulat Alexandru 创建。