ahmed-hussain/laravel-nova-field-dynamic-select

Laravel Nova 字段。

0.2.0 2019-03-14 12:01 UTC

This package is auto-updated.

Last update: 2024-09-04 22:23:33 UTC


README

此字段允许您根据其他动态选择字段的值动态填充选择框的内容。

字段基于 [nova-belongs-to-dependency]{https://novapackages.com/packages/manmohanjit/nova-belongs-to-dependency},但您可以选择自定义值而不是选择模型。

使用方法

类在 Laravel Nova 的默认 Select 上有 2 个特殊方法。 dependsOn 可以接受一个列表,其中包含此字段依赖的其他字段。 options 可以是一个数组或一个可调用对象。如果是可调用对象,它将接收一个数组作为第一个参数,该数组包含所选的依赖值,并应返回一个数组,该数组包含要在选择字段上显示的项目。

示例

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')
            ,
        ];
    }