A Laravel Nova phone number field with input masking and validation support.
dniccum/phone-number is a Laravel package for a laravel nova phone number field with input masking and validation support..
It currently has 70 GitHub stars and 464.064 downloads on Packagist (latest version v3.1.2).
Install it with composer require dniccum/phone-number.
Discover more Laravel packages by dniccum
or browse all Laravel packages to compare alternatives.
Last updated

A Laravel Nova field to format using a dynamic input mask and additional phone number validation.
NOTE: This field utilizes Propaganistas / Laravel-Phone package for validation.

To install this tool, use the installation code below:
composer require dniccum/phone-number
To use the field, add the following code to your Nova resource. As this is a field, all of the default field properties can be applied.
use Dniccum\PhoneNumber\PhoneNumber;
PhoneNumber::make('Phone Number')
To support multiple types and formats of phone numbers, this field has multiple methods for input masking and validation that are available.
| Method/Options | Default | |--------------------|-------------------------------| | format | string: '(###) ###-####' | | placeholder | string: '[Name of Field]' | | useMaskPlaceholder | boolean: false | | country | string: 'US' | | countries | string[]: ['US'] | | disableValidation | boolean: false | | linkOnIndex | boolean: false | | linkOnDetail | boolean: false |
PhoneNumber::make('Phone Number')
->format('###-###-####')
Type: string
Default: (###) ###-####
This is the value that the javascript controlling the input mask will use define it's values; and depending the field's configuration the placeholder text. To indicate numbers, use the hash (#) symbol.
Note: Other types of content can be included within this input like an phone extension:
PhoneNumber::make('Phone Number')
->format('###-###-#### ext ####')
However the built-in phone number validation will FAIL as this is technically an invalid phone number. To prevent the validation from failing, turn off the phone number validation like so:
PhoneNumber::make('Phone Number')
->format('###-###-####')
->disableValidation()
PhoneNumber::make('Phone Number')
->placeholder('Personal Home Number')
Type: string
Default: [Name of the Field]
If you would like to override the default placeholder supplied by Nova, which is the name of field, user a simple string.
Note: If you are telling the input to override the placeholder by using the input's mask with the useMaskPlaceholder method, this will not work.
PhoneNumber::make('Phone Number')
->useMaskPlaceholder()
Type: boolean
Default: false
This will tell the field to replace the input's defined placeholder with the input mask from the ->format() method.
PhoneNumber::make('Phone Number')
->country('CA')
Type: string
Default: US
This tells the field what type of phone number validation to use. To define a type of validation, define a ISO 3166-1 alpha-2 compliant country code.
You can only define one country here. If you would like to define more than one, please see the ->countries() method.
NOTE: This field utilizes Propaganistas / Laravel-Phone package for validation.
PhoneNumber::make('Phone Number')
->countries(['US', 'CA'])
Type: string[]
Default: US
If you would like to define more than one country to validate against, define string-based array of ISO 3166-1 alpha-2 compliant country codes.
NOTE: This field utilizes Propaganistas / Laravel-Phone package for validation.
PhoneNumber::make('Phone Number')
->linkOnIndex()
Type: boolean
Default: false
Render's the phone number as a clickable link on the index view.
PhoneNumber::make('Phone Number')
->linkOnDetail()
Type: boolean
Default: false
Render's the phone number as a clickable link on the detail view.
The MIT License (MIT). Please see License File for more information.