huaxiachenli / laravel-adminlte
轻松将Laravel与AdminLTE集成,由jeroennoten/Laravel-AdminLTE分支而来
Requires
- php: >=5.5.9
- laravel/framework: ~5.1.12|~5.2.0|~5.3.0|~5.4.0
Requires (Dev)
- phpunit/phpunit: ~4.0
- dev-master
- v1.19.2
- v1.19.1
- v1.19.0
- v1.18.0
- v1.17.0
- v1.16.2
- v1.16.1
- v1.16.0
- v1.15.2
- v1.15.1
- v1.15.0
- v1.14.1
- v1.14.0
- v1.13.0
- v1.12.0
- v1.11.0
- v1.10.1
- v1.10.0
- v1.9.0
- v1.8.1
- v1.8.0
- v1.7.1
- v1.7.0
- v1.6.6
- v1.6.5
- v1.6.4
- v1.6.3
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.1
- v1.5.0
- v1.4.0
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.0
- v1.0.0
- dev-csrf-taken
This package is auto-updated.
Last update: 2024-09-05 03:28:12 UTC
README
本软件包提供了一种快速设置Laravel 5与AdminLTE的方法。除了Laravel之外,它没有其他要求和依赖,因此您可以立即开始构建您的管理面板。软件包仅提供了一种Blade模板,您可以根据需要进行扩展,并提供了高级菜单配置选项。还包括一个用于替换make:auth
Artisan命令的替代品,该命令使用AdminLTE风格的视图而不是默认的Laravel视图。
1. 安装
-
使用Composer要求该软件包
composer require jeroennoten/laravel-adminlte
-
将服务提供者添加到
config/app.php
中的providers
JeroenNoten\LaravelAdminLte\ServiceProvider::class,
-
发布公共资产
php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=assets
2. 更新
-
要更新此软件包,首先更新Composer软件包
composer update jeroennoten/laravel-adminlte
-
然后,使用
--force
标志发布公共资产以覆盖现有文件php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=assets --force
3. 使用
要使用模板,创建一个blade文件,并使用@extends('adminlte::page')
扩展布局。此模板提供以下部分
title
: 用于<title>
标签content_header
: 页面标题,位于内容上方content
: 页面的全部内容css
: 额外的样式表(位于<head>
中)js
: 额外的javascript(位于</body>
之前)
所有部分都是可选的。您的blade模板可能看起来像以下内容。
{{-- resources/views/admin/dashboard.blade.php --}} @extends('adminlte::page') @section('title', 'Dashboard') @section('content_header') <h1>Dashboard</h1> @stop @section('content') <p>Welcome to this beautiful admin panel.</p> @stop @section('css') <link rel="stylesheet" href="/css/admin_custom.css"> @stop @section('js') <script> console.log('Hi!'); </script> @stop
注意,在Laravel 5.2或更高版本中,您还可以使用@stack
指令为css
和javascript
提供内容
{{-- resources/views/admin/dashboard.blade.php --}} @push('css') @push('js')
现在,您只需像往常一样从控制器返回此视图。查看AdminLTE以了解如何为您的管理面板构建美丽的内容。
4. make:adminlte
artisan命令
注意:仅适用于Laravel 5.2及以上版本
本软件包附带一个make:adminlte
命令,其行为与make:auth
(在Laravel 5.2中引入)完全相同,但使用AdminLTE风格视图替换了认证视图。
php artisan make:adminlte
此命令应与make:auth
命令一样在新应用中使用
4.1 使用make:adminlte
命令之外的认证视图
如果您想手动使用包含的认证相关视图,可以创建以下文件,并将一行添加到每个文件中
resources/views/auth/login.blade.php
:
@extends('adminlte::login')
resources/views/auth/register.blade.php
@extends('adminlte::register')
resources/views/auth/passwords/email.blade.php
@extends('adminlte::passwords.email')
resources/views/auth/passwords/reset.blade.php
@extends('adminlte::passwords.reset')
默认情况下,登录表单包含指向注册表单的链接。如果您不想有注册表单,将register_url
设置更改为null
,则链接将不会显示。
5. 配置
首先,发布配置文件
php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=config
现在,编辑 config/adminlte.php
来配置标题、皮肤、菜单、URL等。所有配置选项都有注释说明。但是,我想重点介绍一下 menu
配置。
5.1 菜单
您可以按照以下方式配置您的菜单
'menu' => [ 'MAIN NAVIGATION', [ 'text' => 'Blog', 'url' => 'admin/blog', ], [ 'text' => 'Pages', 'url' => 'admin/pages', 'icon' => 'file' ], [ 'text' => 'Show my website', 'url' => '/', 'target' => '_blank' ], 'ACCOUNT SETTINGS', [ 'text' => 'Profile', 'route' => 'admin.profile', 'icon' => 'user' ], [ 'text' => 'Change Password', 'route' => 'admin.password', 'icon' => 'lock' ], ],
使用单个字符串,您可以指定一个菜单标题项来分隔项目。使用数组,您可以指定一个菜单项。text
和 url
或 route
是必需的属性。icon
是可选的,如果您不指定它,您将得到一个 开放圆圈。您可以使用来自 Font Awesome 的可用图标。只需指定图标的名称,它就会出现在您的菜单项前面。
如果您想有条件地显示菜单项,请使用 can
选项。这集成了 Laravel 的 Gate
功能。如果您还需要有条件地显示标题,需要将它们包裹在数组中,就像其他菜单项一样,使用 header
选项
[ [ 'header' => 'BLOG', 'can' => 'manage-blog' ], [ 'text' => 'Add new post', 'url' => 'admin/blog/new', 'can' => 'add-blog-post' ], ]
自定义菜单过滤器
如果您需要自定义过滤器,您可以轻松地向此包中添加自己的菜单过滤器。当您使用第三方授权包(而不是 Laravel 的 Gate
功能)时,这可能很有用。
例如,使用 Laratrust
<?php namespace MyApp; use JeroenNoten\LaravelAdminLte\Menu\Builder; use JeroenNoten\LaravelAdminLte\Menu\Filters\FilterInterface; use Laratrust; class MyMenuFilter implements FilterInterface { public function transform($item, Builder $builder) { if (isset($item['permission']) && ! Laratrust::can($item['permission'])) { return false; } if (isset($item['header'])) { $item = $item['header']; } return $item; } }
然后将它添加到 config/adminlte.php
'filters' => [ JeroenNoten\LaravelAdminLte\Menu\Filters\ActiveFilter::class, JeroenNoten\LaravelAdminLte\Menu\Filters\HrefFilter::class, JeroenNoten\LaravelAdminLte\Menu\Filters\SubmenuFilter::class, JeroenNoten\LaravelAdminLte\Menu\Filters\ClassesFilter::class, JeroenNoten\LaravelAdminLte\Menu\Filters\GateFilter::class, // Comment this line out if you want MyApp\MyMenuFilter::class, ]
运行时菜单配置
您也可以在运行时配置菜单,例如在任意服务提供者的启动中。如果您的菜单不是静态的,例如它依赖于您的数据库或区域设置,请使用此功能。您也可以将两种方法结合起来。菜单将简单地连接起来,服务提供者的顺序决定了菜单中的顺序。
要在运行时配置菜单,为 MenuBuilding
事件注册处理程序或回调,例如在服务提供者的 boot()
方法中
use Illuminate\Contracts\Events\Dispatcher; use JeroenNoten\LaravelAdminLte\Events\BuildingMenu; class AppServiceProvider extends ServiceProvider { public function boot(Dispatcher $events) { $events->listen(BuildingMenu::class, function (BuildingMenu $event) { $event->menu->add('MAIN NAVIGATION'); $event->menu->add([ 'text' => 'Blog', 'url' => 'admin/blog', ]); }); } }
配置选项与静态配置文件中的相同。
一个更实用的示例,它实际上使用了翻译和数据库
public function boot(Dispatcher $events) { $events->listen(BuildingMenu::class, function (BuildingMenu $event) { $event->menu->add(trans('menu.pages')); $items = Page::all()->map(function (Page $page) { return [ 'text' => $page['title'], 'url' => route('admin.pages.edit', $page) ]; }); $event->menu->add(...$items); }); }
此基于事件的方法用于确保构建菜单的代码仅在实际上显示管理面板时运行,而不是在每次请求时运行。
活动菜单项
默认情况下,如果一个以下条件成立,则菜单项被认为是活跃的
- 当前路径与
url
参数匹配 - 当前路径是
url
参数的子路径 - 如果它包含包含活跃菜单项的子菜单
要覆盖此行为,您可以指定一个包含活跃 URL 的 active
参数数组,支持星号和正则表达式。示例
[ 'text' => 'Pages' 'url' => 'pages', 'active' => ['pages', 'content', 'content/*'] ]
5.2 插件
默认情况下支持 DataTables 插件。如果设置为 true
,将自动将必要的 JavaScript CDN 脚本标签注入到 adminlte::page.blade
文件中。
'plugins' => [ 'datatables' => true, ]
6. 翻译
目前,默认提供英语、德语、法语、荷兰语、葡萄牙语和西班牙语翻译。只需在 config/app.php
中指定语言。如果您需要修改文本或添加其他语言,可以发布语言文件
php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=translations
现在,您可以在 resources/lang/vendor/adminlte
中编辑翻译或添加语言。
7. 自定义视图
如果您需要完全控制提供的视图,您可以发布它们
php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=views
现在,您可以在 resources/views/vendor/adminlte
中编辑视图。
8. 问题、问题和拉取请求
您可以在 问题部分 报告问题并提出问题。请在您的 issue 前添加 ISSUE:
并在您的问题前添加 QUESTION:
如果您有问题,请先检查已关闭的问题。随着时间的推移,我已经回答了很多。
要提交一个拉取请求(Pull Request),请将此仓库进行分叉(fork),创建一个新分支,并将您的新代码或更新代码提交到该分支中。然后从您的分支打开一个拉取请求。有关更多信息,请参阅此指南。