Construtor Menu Database para usá-lo como uma navegação no Filament Panel ou como um componente Livewire
composer require tomatophp/filament-menus
depois de instalar seu pacote, execute este comando
php artisan filament-menus:install
finalmente registre o plugin em /app/Providers/Filament/AdminPanelProvider.php
-> plugins (
Filament SpatieLaravelTranslatablePlugin :: make ()-> defaultLocales ([ ' en ' , ' ar ' ])
TomatoPHP FilamentMenus FilamentMenusPlugin :: make ()
)
você pode usar este pacote como uma navegação no painel de administração do 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 ' ));
})
onde dashboard
é uma tecla do menu.
vá para route admin/menus
e crie um novo menu e você obterá o código do componente livewire
você pode construir um menu apenas usando este comando como um componente livewire
">< x-filament-menu menu = " header " />
onde header
é uma chave de menu e você terá o código pronto na lista de menus da tabela
você pode usar a visualização personalizada ex:
">< x-filament-menu menu = " header " view = " menu-item " />
por padrão, usamos Tailwind como visualização principal com este código
@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
ou você pode usar menu($key)
para obter os itens do menu
@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
você pode publicar o arquivo de configuração usando este comando
php artisan vendor:publish --tag= " filament-menus-config "
você pode publicar o arquivo de visualizações usando este comando
php artisan vendor:publish --tag= " filament-menus-views "
você pode publicar o arquivo de idiomas usando este comando
php artisan vendor:publish --tag= " filament-menus-lang "
você pode publicar o arquivo de migração usando este comando
php artisan vendor:publish --tag= " filament-menus-migrations "
Confira nosso incrível TomatoPHP