kayacekovic / laravel-nova-field-dynamic-select
A Laravel Nova field.
Installs: 3 389
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 44
pkg:composer/kayacekovic/laravel-nova-field-dynamic-select
Requires
- php: >=7.1.0
 
This package is auto-updated.
Last update: 2025-10-28 23:20:36 UTC
README
This field allows you to dynamically fill contents of a select based on values in other dynamic select fields.
Field is based on nova-belongs-to-dependency but instead of selecting model, you can select custom values.
Installation
composer require kayacekovic/laravel-nova-field-dynamic-select
Usage
Class have 2 special methods on top of default Select from Laravel Nova.
dependsOncan take a list of other fields this one depends on.optionscan be either an array or a callable.
If its a callable, it will receive array with selected dependency values as first argument and should return an array of items to be shown on the select field.
Example
public function fields(Request $request)
{
    return [
        ID::make()->sortable(),
        DynamicSelect::make('Country', 'country')
            ->options(['US' => 'United States', 'UK' => 'United Kingdom'])
            ->rules('required')
        ,
        DynamicSelect::make('Provider', 'provider')
            ->options(['PR' => 'Premium', 'ST' => 'Standard'])
            ->rules('required')
        ,
        DynamicSelect::make('Product', 'product')
            ->dependsOn(['country', 'provider'])
            ->options(function($values) { 
                if($values['country'] === 'UK' && $values['provider'] === 'PR') {
                    return ['A' => 'Fast shipping', 'B' => 'Normal shipping', 'C' => 'Free shipping'];
                } else {
                    return ['A' => 'Fast shipping', 'B' => 'Normal shipping'];
                }
            })
            ->rules('required')
        ,
    ];
}