Eso es exactamente un placeholder. Es un texto guía que aparece DENTRO del campo cuando está vacío. Ayuda al usuario a entender qué escribir y en qué formato.
¿Para qué sirve un placeholder?
Para dar ejemplos, mostrar formatos, o dar instrucciones cortas. Es diferente al label (que está afuera) y al default (que es un valor real). El placeholder es solo guía visual.
💡 El placeholder DESAPARECE cuando el usuario escribe. No es un valor que se guarda.
El código con el texto guía
Solo agregas ->placeholder('Texto de ejemplo') y aparece dentro del campo.
📝 ESTE ES EL CÓDIGO QUE VAMOS A APRENDER:
📍 Archivo: app/Filament/Resources/Clientes/Schemas/ClienteForm.php
TextInput::make('telefono')
->tel()
->placeholder('+52 55 1234 5678')
🔍 Vamos a entender línea por línea:
TextInput::make('telefono') → Un campo para el número de teléfono.
->tel() → Optimizado para teléfonos (ya lo veremos en detalle).
->placeholder('+52 55 1234 5678') → El texto que aparece dentro del campo cuando está vacío. Es un ejemplo del formato esperado.
📊 Placeholder vs Label vs Default:
| Tipo | ¿Qué hace? |
|---|---|
label() |
Texto AFUERA del campo (arriba) |
placeholder() |
Texto DENTRO del campo (desaparece al escribir) |
default() |
Valor real que se puede guardar |
Ejemplos de placeholders útiles
// Ejemplo de formato
TextInput::make('telefono')
->placeholder('+52 55 1234 5678')
// Instrucción corta
TextInput::make('nombre')
->placeholder('Escribe tu nombre completo')
// Ejemplo de código
TextInput::make('codigo')
->placeholder('ABC-12345')
// Email de ejemplo
TextInput::make('email')
->email()
->placeholder('tucorreo@ejemplo.com')
Un error común
NO uses el placeholder como label. Si el campo es importante, siempre muestra un label. El placeholder desaparece al escribir, entonces el usuario pierde la referencia de qué campo es.
📁 ¿Quieres ver más ejemplos? (opcional)
Un formulario con placeholders útiles:
return $schema->components([
TextInput::make('nombre')
->label('Nombre completo')
->placeholder('Juan Pérez López')
->required(),
TextInput::make('email')
->label('Correo electrónico')
->email()
->placeholder('tucorreo@empresa.com'),
TextInput::make('telefono')
->label('Teléfono')
->tel()
->placeholder('+52 55 1234 5678'),
TextInput::make('rfc')
->label('RFC')
->placeholder('ABCD123456ABC')
->maxLength(13),
]);
🎉 ¿Qué aprendimos hoy?
->placeholder('texto')muestra texto guía DENTRO del campo- Desaparece cuando el usuario empieza a escribir
- Es útil para mostrar ejemplos y formatos
- NO es un valor que se guarda, solo es visual
- NO lo uses como reemplazo del label
En la siguiente lección vamos a hacer que un campo no se pueda editar con disabled(). ¡Nos vemos! 🚀