Hashear una contraseña en Filament
Una de las cosas que más repito cuando hago una plataforma basada en Laravel y usando Filament es la gestión de usuarios en el panel de administración.
Normalmente, el pedacito de código que uso es:
use Filament\Forms\Components\TextInput;
use Filament\Pages\Page;
use Illuminate\Support\Facades\Hash;
TextInput::make('password')
->password()
->dehydrateStateUsing(fn ($state) => Hash::make($state))
->dehydrated(fn ($state) => filled($state))
->required(fn (string $context): bool => $context === 'create')
Vamos a explicar qué es lo que hace:
→password()
→ para usar eltype="password"
en el input y que no se vea lo que el usuario escribe→dehydrateStateUsing
→ para hashear la contraseña antes de guardar el formulario→dehydrated
→ define si se tiene que hashear la contraseña o no. Sólo se hasheará si está el campo relleno→required
→ para que solo sea obligatorio rellenarla en caso de estar creando un nuevo usuario, pero que sea opcional al editar