dillingham/nova-items-field

Nova field to handle array columns

Downloads

774825

Stars

114

Version

0.6

Nova Items Field

Latest Version on Github Total Downloads Twitter Follow

Laravel Nova array items field with sorting, validation & many display options

nova-array-input-field

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

dillingham

Author

dillingham