Módulo 2: Forms – Campos de Texto
Lección 2.6: hiddenLabel() – Ocultar la etiqueta
hiddenLabel() hace exactamente eso: oculta la etiqueta del campo. El campo sigue teniendo nombre (para la base de datos), pero el usuario no ve la etiqueta. Es útil cuando el contexto ya explica qué hacer.
¿Cuándo ocultar la etiqueta?
Cuando es obvio qué es el campo. Una barra de búsqueda con icono de lupa no necesita «Buscar:». Un campo de email con placeholder «tucorreo@ejemplo.com» no necesita «Email:». Menos texto = interfaz más limpia.
💡 Úsalo con cuidado. Si el usuario puede confundirse, mejor deja la etiqueta visible.
El código más simple
Solo agregas ->hiddenLabel() y la etiqueta desaparece.
📝 ESTE ES EL CÓDIGO QUE VAMOS A APRENDER:
📍 Archivo: app/Filament/Resources/Productos/Schemas/ProductoForm.php
TextInput::make('busqueda')
->placeholder('Buscar producto...')
->hiddenLabel()
🔍 Vamos a entender línea por línea:
TextInput::make('busqueda') → El campo existe, tiene nombre, pero no necesariamente va a una base de datos. Puede ser solo para filtrar.
->placeholder('Buscar producto...') → El texto que aparece dentro del campo cuando está vacío. Como la etiqueta no se ve, el placeholder explica qué escribir.
->hiddenLabel() → ¡Poof! La etiqueta desaparece. El usuario solo ve el campo con su placeholder.
📊 Con label vs Sin label:
CON label:
SIN label (hiddenLabel):
Siempre usa placeholder con hiddenLabel
Si ocultas la etiqueta, el usuario necesita saber qué escribir. El placeholder es tu mejor opción aquí. Sin él, el campo queda misterioso.
Ejemplos donde usarlo
// Barra de búsqueda
TextInput::make('search')
->placeholder('Buscar...')
->hiddenLabel()
// Campo de código corto (el contexto ya explica)
TextInput::make('codigo')
->placeholder('ABC123')
->hiddenLabel()
// Campo en una fila con otros campos obvios
TextInput::make('nombre')
->placeholder('Nombre completo')
->hiddenLabel()
📁 ¿Quieres ver un ejemplo completo? (opcional)
Un formulario con campos que no necesitan etiqueta:
return $schema->components([
// Barra de búsqueda principal
TextInput::make('busqueda')
->placeholder('Buscar por nombre, código o descripción...')
->hiddenLabel()
->columnSpanFull(),
// Campos normales con etiqueta
TextInput::make('codigo')
->label('Código del producto')
->required(),
TextInput::make('nombre')
->label('Nombre del producto')
->required(),
]);
¿Cuándo NO usarlo?
Cuando el campo es importante y el usuario podría confundirse. Un campo de «RFC» sin etiqueta puede confundir. Un campo de «Monto» sin etiqueta puede causar errores. Si hay duda, mejor muestra la etiqueta.
🎉 ¿Qué aprendimos hoy?
->hiddenLabel()oculta la etiqueta del campo- Útil cuando el contexto ya explica qué es el campo
- SIEMPRE usa
placeholder()cuando ocultes la etiqueta - Hace la interfaz más limpia y menos cargada
- NO lo uses si el usuario puede confundirse
En la siguiente lección vamos a ver cómo poner un valor por defecto con default(). ¡Nos vemos! 🚀