dillingham / nova-items-field
Nova field to handle array columns
Installs: 941 250
Dependents: 3
Suggesters: 0
Security: 0
Stars: 113
Watchers: 1
Forks: 37
Open Issues: 11
Language:Vue
pkg:composer/dillingham/nova-items-field
Requires
- php: >=7.1.0
README
Laravel Nova array items field with sorting, validation & many display options
Installation
composer require dillingham/nova-items-field
Usage
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' ];
Validation
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', ]),
Array processing
Use the array to perform other actions by making an observer
function saving($user) { foreach($user->emails as $email) { // } }
Replace item vue component
Here's a brief walkthrough to customize the vue item - view
Additional options
| 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 | 
Author
Hi 👋, Im Brian Dillingham, creator of this Nova package and others
Hope you find it useful. Feel free to reach out with feedback.
Follow me on twitter: @im_brian_d
