composer require greg0x46/masked-field
To use the Laravel Nova Masked Field, follow these steps:
- Import the MaskedField class in your Nova resource file:
use Greg0x46\MaskedField\MaskedField;
- Add the MaskedField to the fields method of your resource file:
public function fields(Request $request)
{
return [
MaskedField::make('Phone')
->mask('(###) ###-####'),
];
}
- Optional - Save Value Without Mask
If you want to store the raw (unmasked) value in the database, use theraw()
method:
MaskedField::make('Phone')
->mask('(###) ###-####')
->raw(),
You can also use the dependsOn method to set a conditional mask based on the value of another field. Here's an example:
use Greg0x46\MaskedField\MaskedField;
public function fields(Request $request)
{
return [
MaskedField::make('Phone', 'phone')
->mask('(###) ###-####')
->dependsOn(['country'], function (MaskedField $field, NovaRequest $request, FormData $formData) {
if($formData->country == 'BR')
$field->mask('(##) ####-####');
})
];
}
The Laravel Nova Masked Field uses a mask syntax to define patterns for input formatting. Here are the default tokens available:
{
'#': { pattern: /[0-9]/ },
'X': { pattern: /[0-9a-zA-Z]/ },
'S': { pattern: /[a-zA-Z]/ },
'A': { pattern: /[a-zA-Z]/, uppercase: true },
'a': { pattern: /[a-zA-Z]/, lowercase: true },
'!': { escape: true },
'*': { repeat: true }
}
You can refer to the beholdr/maska repository for more information on the mask syntax.
- It is a custom field for Laravel Nova
- It uses beholdr/maska
- It is inpired by wemersonrv/input-mask
Hey everyone,
My Nova license expired in November 2023 for version v4.29.2, which is the last version I have access to. Currently, I don't have plans to renew it, so unfortunately, I won't be able to assist with issues related to updates or newer Nova features. Feel free to seek alternative support or solutions with other users or maintainers.
Thank you for your understanding.