tomatophp / filament-menus

菜单数据库构建器,可用于 Filament Panel 的导航或作为 Livewire 组件

资助包维护!
3x1io

v1.0.7 2024-09-17 16:41 UTC

This package is auto-updated.

Last update: 2024-09-17 16:42:24 UTC


README

Screenshot

Filament Menus

Latest Stable Version License Downloads

菜单数据库构建器,可用于 Filament Panel 的导航或作为 Livewire 组件

屏幕截图

Menus List Edit Menu Menu Items

安装

composer require tomatophp/filament-menus

安装包后,请运行以下命令

php artisan filament-menus:install

最后在 /app/Providers/Filament/AdminPanelProvider.php 上注册插件

->plugins(
    \Filament\SpatieLaravelTranslatablePlugin::make()->defaultLocales(['en', 'ar'])
    \TomatoPHP\FilamentMenus\FilamentMenusPlugin::make()
)

作为 Filament 导航使用

您可以将此包用作 Filament 管理面板的导航

use Filament\Navigation\NavigationBuilder;
use Filament\Navigation\NavigationGroup;
use TomatoPHP\FilamentMenus\FilamentMenuLoader;

$panel->navigation(function (NavigationBuilder $builder){
    return $builder
        // Use Inside Group
        ->groups([
            NavigationGroup::make()
                ->label('Dashboard')
                ->items(FilamentMenuLoader::make('dashboard')),
        ])
        // Use Directly
        ->items(FilamentMenuLoader::make('dashboard'));
})

其中 dashboard 是菜单的键。

作为 Livewire 组件使用

前往路由 admin/menus 并创建一个新的菜单,您将获得 livewire 组件的代码

您可以通过使用此命令作为 livewire 组件来构建菜单

<x-filament-menu menu="header" />

其中 header 是菜单的键,您将在菜单的表格列表中获取准备好的代码

您可以使用自定义视图,例如

<x-filament-menu menu="header" view="menu-item" />

默认情况下,我们使用 Tailwind 作为主视图,代码如下

@foreach ($menuItems as $item)
<a class="text-gray-500" href="{{ $item['url'] }}" @if($item['blank']) target="_blank" @endif>
    <span class="flex justify-between">
        @if(isset($item['icon']) && !empty($item['icon']))
        <x-icon class="w-4 h-4 mx-2" name="{{ $item['icon'] }}"></x-icon>
        @endif
        {{ $item['title'] }}
    </span>
</a>
@endforeach

或者您可以使用直接助手 menu($key) 来获取菜单项

@foreach (menu('header') as $item)
<a class="text-gray-500" href="{{ $item['url'] }}" @if($item['blank']) target="_blank" @endif>
    <span class="flex justify-between">
        @if(isset($item['icon']) && !empty($item['icon']))
        <x-icon class="w-4 h-4 mx-2" name="{{ $item['icon'] }}"></x-icon>
        @endif
        {{ $item['title'] }}
    </span>
</a>
@endforeach

发布资产

您可以通过使用此命令发布配置文件

php artisan vendor:publish --tag="filament-menus-config"

您可以通过使用此命令发布视图文件

php artisan vendor:publish --tag="filament-menus-views"

您可以通过使用此命令发布语言文件

php artisan vendor:publish --tag="filament-menus-lang"

您可以通过使用此命令发布迁移文件

php artisan vendor:publish --tag="filament-menus-migrations"

其他 Filament 包

查看我们的 Awesome TomatoPHP