[英]How to dynamically fill Text field based on select field option in `Nova Laravel`
如何根据 Nova Laravel 中的 select 框设置文本字段? (不使用库)
eg:如果用户选择Option为100, Option Name应该是“First Option”(options数组是动态调用的)
$options = [
100 => "First Option"
101 => "Second Option"
102 => "Third Option"
];
Select::make('Option')->options($options),
Text::make('Option Name')->readonly();
在同样的情况下,我使用了 NovaAjaxSelect\AjaxSelect
对于有人遇到同样的问题。 我在 laravel nova4 上使用了这个。
$options = [
100 => "First Option",
200 => "Second Option"
];
Select::make('Options')->options(
$options
)->required(),
Text::make('Option Name')->readonly()->dependsOn(
['options'],
function (
Text $field,
NovaRequest $request,
FormData $formData
) use ($options) {
$field->default(function ($request) use ($formData, $options){
return $options[$formData->options];
});
}
),
您可以创建 CustomText 并扩展文本字段。 覆盖 resolveDefaultValue。 用这个 function。
您的字段将听取其他字段并将您的文本字段的值更改为您的选择。
/**
* Resolve the default value for the field.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return mixed
*/
protected function resolveDefaultValue(NovaRequest $request)
{
if ($this->defaultCallback instanceof Closure) {
return call_user_func($this->defaultCallback, $request);
}
return $this->defaultCallback;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.