Generador de base de datos de menú para usarlo como navegación en el panel de filamentos o como componente Livewire
composer require tomatophp/filament-menus
Después de instalar su paquete, ejecute este comando.
php artisan filament-menus:install
finalmente registre el complemento en /app/Providers/Filament/AdminPanelProvider.php
-> plugins (
Filament SpatieLaravelTranslatablePlugin :: make ()-> defaultLocales ([ ' en ' , ' ar ' ])
TomatoPHP FilamentMenus FilamentMenusPlugin :: make ()
)
Puede utilizar este paquete como navegación en el Panel de administración de 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 ' ));
})
donde dashboard
es una clave del menú.
vaya a la ruta admin/menus
y cree un nuevo menú y obtendrá el código del componente livewire
puedes crear un menú simplemente usando este comando como un componente livewire
">< x-filament-menu menu = " header " />
donde header
es una clave del menú y obtendrá el código listo en la lista de menús de la Tabla
puedes usar la vista personalizada, por ejemplo:
">< x-filament-menu menu = " header " view = " menu-item " />
De forma predeterminada usamos Tailwind como vista principal con 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
o puede usar menu($key)
para obtener los elementos del menú
@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
puedes publicar el archivo de configuración usando este comando
php artisan vendor:publish --tag= " filament-menus-config "
puedes publicar archivos de vistas usando este comando
php artisan vendor:publish --tag= " filament-menus-views "
puedes publicar archivos de idiomas usando este comando
php artisan vendor:publish --tag= " filament-menus-lang "
puedes publicar el archivo de migraciones usando este comando
php artisan vendor:publish --tag= " filament-menus-migrations "
Echa un vistazo a nuestro impresionante TomatoPHP