nysso / laravel-nova-field-dynamic-select
一个 Laravel Nova 字段。
0.3.2
2019-07-29 18:38 UTC
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2024-09-29 05:09:02 UTC
README
-
支持 Nova >= 2.0.1
-
此字段允许您根据其他动态选择字段中的值动态填充选择框的内容。
从 https://github.com/hubertnnn/laravel-nova-field-dynamic-select 分支出来的包
使用方法
类在 Laravel Nova 默认选择的基础上增加了两个特殊方法。 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'])
->placeholder('choose a value')
->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')
,
];
}