Saltar al contenido principal

Menú de usuario

Introducción​

El menú de usuario aparece en la esquina superior derecha del diseño de administración. Es totalmente personalizable.

Cada elemento del menú está representado por una acción y se puede personalizar de la misma manera. Para registrar nuevos elementos, puede pasar las acciones al método userMenuItems() de la configuración:

use App\Filament\Pages\Settings;
use Filament\Actions\Action;
use Filament\Panel;

public function panel(Panel $panel): Panel
{
return $panel
// ...
->userMenuItems([
Action::make('settings')
->url(fn (): string => Settings::getUrl())
->icon('heroicon-o-cog-6-tooth'),
// ...
]);
}

Personalizando el enlace del perfil​

Para personalizar el enlace del perfil de usuario al inicio del menú de usuario, registre un nuevo elemento con la clave de matriz profile y ​​pase una función que personalice la acción:

use Filament\Actions\Action;
use Filament\Panel;

public function panel(Panel $panel): Panel
{
return $panel
// ...
->userMenuItems([
'profile' => fn (Action $action) => $action->label('Edit profile'),
// ...
]);
}

Para obtener más información sobre cómo crear una página de perfil, consulte la [documentación de funciones de autenticación] (../users#authentication-features).

Personalizando el enlace de cierre de sesión​

Para personalizar el enlace de cierre de sesión del usuario al final del menú de usuario, registre un nuevo elemento con la clave de matriz logout y ​​pase una función que personalice la acción:

use Filament\Actions\Action;
use Filament\Panel;

public function panel(Panel $panel): Panel
{
return $panel
// ...
->userMenuItems([
'logout' => fn (Action $action) => $action->label('Log out'),
// ...
]);
}

Ocultar condicionalmente elementos del menú de usuario​

También puede ocultar condicionalmente un elemento del menú de usuario utilizando los métodos visible() o hidden(), pasando una condición para verificar. Pasar una función pospondrá la evaluación de la condición hasta que el menú se esté procesando realmente:

use App\Models\Payment;
use Filament\Actions\Action;

Action::make('payments')
->visible(fn (): bool => auth()->user()->can('viewAny', Payment::class))
// or
->hidden(fn (): bool => ! auth()->user()->can('viewAny', Payment::class))

Envío de una solicitud HTTP POST desde un elemento del menú de usuario​

Puede enviar una solicitud HTTP POST desde un elemento del menú de usuario pasando una URL al método url() y ​​también usando postToUrl():

use Filament\Actions\Action;

Action::make('lockSession')
->url(fn (): string => route('lock-session'))
->postToUrl()

Deshabilitar el menú de usuario​

Puede desactivar el menú de usuario por completo pasando false al método userMenu():

use Filament\Panel;

public function panel(Panel $panel): Panel
{
return $panel
// ...
->userMenu(false);
}