Конструктор базы данных меню для использования его в качестве навигации на панели нити или в качестве компонента Livewire.
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.
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
— это клавиша меню.
перейдите в раздел 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 "
Ознакомьтесь с нашим удивительным TomatoPHP