Cuando necesitas más de una línea de texto
¿Cuándo usar Textarea en lugar de TextInput?
Cuando el texto es largo: descripciones, comentarios, biografías, direcciones completas. Si el usuario necesita escribir más de una frase, usa Textarea.
💡 TextInput = una línea. Textarea = múltiples líneas.
Diferencia visual
TextInput se ve como una rayita. Textarea se ve como un cuadrito con varias líneas. El usuario puede dar Enter y bajar de renglón.
📍 Archivo: app/Filament/Resources/ProductoResource.php
📝 ESTE ES EL CÓDIGO QUE VAMOS A APRENDER:
📍 Archivo: app/Filament/Resources/ProductoResource.php
Textarea::make('descripcion')
->label('Descripción del producto')
->rows(3),
🔍 Vamos a entender línea por línea (como si fuera la primera vez):
Textarea::make('descripcion')→ Creamos un área de texto. Es como un TextInput pero grande. El campo en la base de datos suele ser de tipo TEXT.
->label('Descripción del producto')→ La etiqueta que aparece arriba. Le decimos al usuario qué debe escribir ahí.
->rows(3)→ Cuántas líneas de alto se ven. 3 significa que se muestran 3 renglones. Si el texto es más largo, aparece una barra de desplazamiento.
📊 TextInput vs Textarea:
| Característica | TextInput | Textarea |
|---|---|---|
| Líneas | 1 sola | Múltiples |
| Tecla Enter | Envía el form | Baja de línea |
| Uso típico | Nombres, emails | Descripciones, comentarios |
| Tamaño visual | Pequeño | Grande, expandible |
👆 Usa Textarea cuando el usuario necesite escribir texto libre y largo.
Métodos disponibles
Textarea acepta los mismos métodos que TextInput:
Textarea::make('notas')
->label('Notas internas')
->rows(5) // Altura inicial
->cols(50) // Ancho en caracteres
->placeholder('Escribe aquí...')
->required()
->maxLength(1000),
💡 Veremos rows() y cols() en detalle en las siguientes lecciones.
📁 ¿Quieres ver el código completo del archivo? (opcional)
Esto es solo para que veas dónde va tu código. No necesitas memorizar todo esto:
// app/Filament/Resources/ProductoResource.php
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('nombre')
->required(),
TextInput::make('precio')
->numeric()
->required(),
// Este campo es para texto largo
Textarea::make('descripcion')
->label('Descripción del producto')
->rows(3),
]);
}
🎉 ¿Qué aprendimos hoy?
Textarea::make()crea un campo de texto multilínea- Úsalo para descripciones, comentarios, texto largo
->rows(3)define cuántas líneas de alto se muestran- El usuario puede usar Enter para bajar de línea
¡Ya tienes la herramienta perfecta para texto largo! En la siguiente lección veremos rows() en detalle.