A Laravel Nova password field with a visibility toggle, its behaviour typical as the built-in password field, but with added features that you may find useful in certain use cases.
- it can safely replace the built-in password field.
- Enable the toggle button in index and/or detail.
- Disable the toggle button in forms.
- Render the field with data.
- Disable data encryption/hash.
php: ^8laravel/nova: ^4
You can install the package in to a Laravel app that uses Nova via composer:
composer require magdicom/nova-visible-passwordUsing the field is simple, just like any other Nova built-in field.
// in app/Nova/Resources/User.php
use Magdicom\NovaVisiblePassword\VisiblePassword;
class User extends Resource
{
public function fields(Request $request)
{
return [
VisiblePassword::make('Password')
];
}
}The default behaviour of the password field is to encrypt the data when saving it using Laravel Hash class, to disable this functionality you simply need to call the hashOnSave method which accepts a boolean or callback:
VisiblePassword::make('Password')->hashOnSave(false),Normally password fields would populate/displayed empty, but in some cases you may need these data to be present, use the withValue method which accepts a boolean or callback:
VisiblePassword::make('Password')->withValue(true),You can disable the toggle button on create/update forms per field using visibleOnForms method:
VisiblePassword::make('Password')
->visibleOnForms(function(){
// your logic here
return false;
}),- The methods
visibleOnForms,visibleOnIndexandvisibleOnDetailaccepts boolean value or a callback.
Optionally you can enable the toggle button on resource index page:
VisiblePassword::make('Password')->visibleOnIndex(),Also you can enable the toggle button on resource detail page:
VisiblePassword::make('Password')->visibleOnDetail(),The MIT License (MIT). Please see License File for more information.




