bessamu/ajax-multiselect-nova-field

A Laravel Nova field.

1.2.3 2024-07-27 19:23 UTC

README

Laravel Nova package add vue-multiselect field work with ajax requests. Field values save as json string.

Getting Started

Installing

Install the package in a project via composer:

composer require bessamu/ajax-multiselect-nova-field

Usage

Ajax multiselect field have a model option for searching by ajax queries.

<?php

namespace App\Nova;

use App\Models\Catalog\Product;
use Bessamu\AjaxMultiselectNovaField\AjaxMultiselect;

class NewsResource extends Resource
{
    public function fields(Request $request)
    {
        return [
            AjaxMultiselect::make('Products', 'products')
                ->optionsModel(Product::class)
                ->optionsLabel('model')
                ->queryWhere('enabled', 1)
                ->placeholder('Select products')
                ->maxOptions(5)
        ];
    }
}

Option optionsModel required for this nova field:

  • Parameter is model class string, must be extended by Illuminate\Database\Eloquent\Model.

Values saved as json string in a column.

All options

option required parameters description
optionsModel() require string $modelClass Set a model class to search.
optionsLabel() optional string $searchLabel Set a label for frontend output and search models. By default searching label is 'name'.
queryWhere() optional string $column, string $value, string $operator = '=' Set query by a column, value and operator
placeholder() optional string $placeholder Set a placeholder for vue-multiselect input.
maxOptions() optional int $max Set the maximal number of selections and limit returned models
orderBy() optional string $column, string $direction = 'asc' Order your outputs by column name and use direction asc(default) or desc.

Authors

  • Korotkov Pavel - Initial work - Bessamu

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details