El campo que oculta lo que escribes
password() convierte tu TextInput en un campo seguro para contraseñas.
¿Qué hace password()?
Transforma el campo de texto para que lo que escribas se muestre como puntos o asteriscos. Nadie que pase por detrás puede leer tu contraseña.
💡 También agrega un botón de «ojo» para mostrar/ocultar la contraseña si el usuario lo necesita.
¿Cuándo usarlo?
Siempre que manejes contraseñas, PINes, o cualquier dato sensible que no deba verse mientras se escribe.
📍 Archivo: app/Filament/Resources/UsuarioResource.php
📝 ESTE ES EL CÓDIGO QUE VAMOS A APRENDER:
📍 Archivo: app/Filament/Resources/UsuarioResource.php
TextInput::make('password')
->label('Contraseña')
->password()
->required()
->minLength(8),
🔍 Vamos a entender línea por línea (como si fuera la primera vez):
TextInput::make('password')→ Creamos un campo de texto para la contraseña. El nombre del campo suele ser «password» o «contraseña».
->label('Contraseña')→ La etiqueta que ve el usuario encima del campo.
->password()→ Aquí está la magia: convierte el campo en tipo «password». Lo que escribas se muestra como ●●●●●●●●.
->required()->minLength(8)→ Es obligatorio y debe tener al menos 8 caracteres. Seguridad básica.
📊 TextInput normal vs password():
| Característica | Sin password() | Con password() |
|---|---|---|
| Lo que se ve | Texto visible | ●●●●●●●● |
| Botón mostrar | No | Sí (icono de ojo) |
| Seguridad | Baja | Alta |
| Uso típico | Nombre, email | Contraseñas, PINes |
👆 Siempre usa password() para datos sensibles.
Confirmación de contraseña
Es común pedir la contraseña dos veces para confirmar:
TextInput::make('password')
->password()
->required(),
TextInput::make('password_confirmation')
->password()
->label('Confirmar contraseña')
->same('password'),
💡 El método same() verifica que ambos campos coincidan.
📁 ¿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/UsuarioResource.php
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('name')
->required(),
TextInput::make('email')
->email()
->required(),
TextInput::make('password')
->label('Contraseña')
->password()
->required()
->minLength(8)
->dehydrated(fn ($state) => filled($state))
->required(fn (string $context): bool => $context === 'create'),
]);
}
🎉 ¿Qué aprendimos hoy?
->password()oculta el texto con puntos o asteriscos- Incluye botón para mostrar/ocultar la contraseña
- Úsalo SIEMPRE para contraseñas y datos sensibles
- Puedes combinarlo con minLength() para más seguridad
¡Ahora tus formularios son más seguros! Siguiente lección: tel() para teléfonos.