juliomotol/laravel-admin-panel

此包已被弃用且不再维护。未建议替代包。

这是我的包laravel-admin-panel

v0.1.1 2022-06-20 16:21 UTC

This package is auto-updated.

Last update: 2023-08-03 09:24:42 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

这是一个简单的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 &copy; {{ 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)。请参阅许可证文件以获取更多信息。