juliomotol / laravel-admin-panel
这是我的包laravel-admin-panel
Requires
- php: ^8.1
- illuminate/console: ^9.0
- illuminate/contracts: ^9.0
- illuminate/support: ^9.0
- illuminate/view: ^9.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2023-08-03 09:24:42 UTC
README
这是一个简单的CoreUI管理面板模板,具有侧边导航管理。
安装
您可以通过composer安装此包
composer require juliomotol/laravel-admin-panel
安装后,使用admin-panel:install
Artisan命令发布其资源。
php artisan admin-panel:install
如果您想构建自己的资源,请添加
--no-assets
选项。
如果您想使用提供的资源,请使用以下命令发布资源
@php artisan vendor:publish --tag=admin-panel-assets
为了保持资源更新并避免未来更新中的问题,我们强烈建议将此命令添加到您的composer.json
文件中的post-autoload-dump
脚本中
"scripts": { "post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force", "@php artisan vendor:publish --tag=admin-panel-assets --ansi --force" ] }
通过在模板的head标签中添加以下Blade指令,并在body标签末尾之前添加,来包含资源。
<html> <head> ... @adminPanelStyle </head> <body> ... @adminPanelScript </body> </html>
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="laravel-admin-panel-config"
这是发布配置文件的内容
return [
];
可选地,您可以使用以下命令发布视图
php artisan vendor:publish --tag="laravel-admin-panel-views"
使用方法
将组件添加到模板中
在您的模板中
<x-admin-panel-component> <!-- your mark up --> </x-admin-panel-component>
您可以使用以下方式将您自己的品牌标志添加到侧边栏和页眉(仅在移动视图中可见)
<x-admin-panel-component> <x-slot:sidebarBrand :src="asset('logo.png')"></x-slot> <x-slot:headerBrand :src="asset('logo.png')"></x-slot> <!-- your mark up --> </x-admin-panel-component>
任何额外的属性都将传递给相应的
<img>
标签。
<x-slot:headerBrand>
插槽也可以接受一个href
属性,该属性将传递给包含标志的<a>
标签。
您可以使用以下方式添加自己的页脚
<x-admin-panel-component> <!-- your mark up --> <x-slot:footer> <div> Copyright © {{ date('Y') }} </div> </x-slot> </x-admin-panel-component>
侧边栏 & 账户导航
在您的AdminPanelServiceProvider
中,您可以通过以下方式构建侧边栏和账户下拉导航
class AdminPanelServiceProvider extends AdminPanelApplicationServiceProvider { protected function build(AdminPanelManager $adminPanel): void { $adminPanel->sidebar() ->addItem('Dashboard', 'admin.dashboard') ->addGroup( 'Access', fn (NavigationGroup $group) => $group ->addItem( 'Users', callback: fn (NavigationItem $item) => $item ->additem('Admin', 'admin.users.admins.index') ->additem('Clients', 'admin.users.clients.index') ) ->addItem('Roles', 'admin.roles') ); $adminPanel->account() ->addItem('My Profile', 'admin.my-profile.index'); ->addItem('Logout', 'auth.logout'); $adminPanel->setAccountAvatarResolver(fn () => Auth::user()->avatar()) } }
添加导航项
您可以通过传递一个闭包进一步自定义导航项
$adminPanel->sidebar() /** * @param string $title * @param ?string $route Can either be a named route or a url * @param array $parameters The parameters for the named route * @param \Closure $callback */ ->addItem('Inquiries', 'admin.inquiries', callback: fn (NavigationItem $item) => ...)
NavigationItem
使用了Laravel的Conditionable
特性。您可以使用when()
和unless()
方法来自定义它。
您可以使用以下方式添加图标类
$adminPanel->sidebar() ->addItem( 'Inquiries', 'admin.inquiries', callback: fn (NavigationItem $item) =>$item->withIconClass('cil-notes') );
资源包含CoreUI Icons。
注意:图标在账户下拉菜单中不会显示。
您可以使用以下方式添加徽章
$adminPanel->sidebar() ->addItem( 'Inquiries', 'admin.inquiries', callback: fn (NavigationItem $item) =>$item->withBadge( /** * @param string|\Closure $title * @param BadgeStyle $style */ Badge::make( fn() => Inquiries::isUnread()->count(), // Also accepts a string BadgeStyle::SUCCESS ) ) );
可用的徽章样式有
BadgeStyle::PRIMARY BadgeStyle::SECONDARY BadgeStyle::INFO BadgeStyle::SUCCESS BadgeStyle::WARNING BadgeStyle::ERROR
您还可以使用以下方式添加下拉菜单
$adminPanel->sidebar() ->addItem( 'Inquiries', 'admin.inquiries', callback: fn (NavigationItem $item) =>$item->addItem(...) );
注意:下拉菜单仅在侧边栏中显示。下拉菜单项也不会显示任何图标。
添加导航分组
您可以通过传递一个闭包在导航分组中添加项目
$adminPanel->sidebar() /** * @param string $title The title shown for this navigation group * @param \Closure $callback A closure to modify */ ->addGroup( 'CMS', fn (NavigationGroup $group) => $group->addItem('Pages', 'admin.pages') ->addItem('Blocks', 'admin.blocks') ->addItem('Meta', 'admin.meta') );
NavigationGroup
使用了Laravel的Conditionable
特性。您可以使用when()
和unless()
方法来有条件地添加项。
设置账户头像
您可以使用以下方式显示不同的账户头像:
$adminPanel->setAccountAvatarResolver(fn () => Auth::user()->avatar());
构建自己的资源
提供了一套合理的默认资源,但如果您想在admin-panel:install
时实现自己的构建步骤,请添加--no-assets
选项
php artisan admin-panel:install --no-assets
然后通过NPM安装资源依赖项
npm install @coreui/coreui @coreui/icons @coreui/utils simplebar --save-dev
请以/assets
作为构建自己资源的起点。
更新日志
请参阅更新日志以了解最近的变化。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请查看我们的安全策略以了解如何报告安全漏洞。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。