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: ^8
laravel/nova: ^4
You can install the package in to a Laravel app that uses Nova via composer:
composer require magdicom/nova-visible-password
Using 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
,visibleOnIndex
andvisibleOnDetail
accepts 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.