| Package Data | |
|---|---|
| Maintainer Username: | dillingham |
| Package Create Date: | 2019-01-10 |
| Package Last Update: | 2022-05-04 |
| Home Page: | |
| Language: | Vue |
| License: | MIT |
| Last Refreshed: | 2025-11-18 15:21:31 |
| Package Statistics | |
|---|---|
| Total Downloads: | 945,717 |
| Monthly Downloads: | 8,185 |
| Daily Downloads: | 397 |
| Total Stars: | 113 |
| Total Watchers: | 1 |
| Total Forks: | 37 |
| Total Open Issues: | 11 |
Laravel Nova array items field with sorting, validation & many display options

composer require dillingham/nova-items-field
use NovaItemsField\Items;
function fields() {
return [
Items::make('Emails'),
]
}
and be sure to cast the property as an array on your eloquent model
public $casts = [
'emails' => 'array'
];
Use Laravel's built in array validation
Items::make('Emails')->rules([
'emails.*' => 'email|min:10',
]),
Manually setting the attribute may be needed in some cases.
Items::make('Long Text', 'attribute')->rules([
'attribute.*' => 'email|min:10',
]),
Use the array to perform other actions by making an observer
function saving($user)
{
foreach($user->emails as $email)
{
//
}
}
Here's a brief walkthrough to customize the vue item - view
| function | description | default |
| - | - | - |
| ->max(number) | limit number of items allowed | false |
| ->draggable() | turn on drag/drop sorting | false |
| ->fullWidth() | increase the width of field area | false |
| ->maxHeight(pixel) | limit the height of the list | false |
| ->listFirst()| move add new to the bottom | false |
| ->inputType(text) | text, date, etc | "text" |
| ->placeholder($value) | the new item input text | "Add a new item" |
| ->deleteButtonValue($value) | value for delete button | "x" |
| ->createButtonValue($value) | value for create button | "Add" |
| ->hideCreateButton() | hide the "add" button | false |