我在尝试使用 spatie/laravel-html 添加自定义属性来选择选项时遇到问题。我来自 Laravel Collective,它允许您提交额外的属性集合,例如:
控制器:
$contact_detail_types = ContactDetailType::pluck('contact_detail_type','id')->all();
$option_attributes = collect(ContactDetailType::all())
->mapWithKeys(function ($item) {
return [$item->id => ['data-input-mask' => $item->input_mask]];
})->all();
Blade(Laravel 集体):
{!! Form::select('contact_detail_type_id', $contact_detail_types, null, $option_attributes) !!}
现在有了 spatie/laravel-html,就没有这样的额外变量了。我如何实现这一目标?:
{{
html()->select('contact_detail_type_id')
->children($contact_detail_types, function ($contact_detail_type, $id){
return html()->option($contact_detail_type, $id)->attribute($cdt_input_masks[$id]);
})
->class('form-control kt-select2' . ($errors->has('contact_detail_type_id') ? ' is-invalid' : ''))
}}
如何将 $option_attributes 传递给自定义 -> 选项调用/子函数?
这就是我为那些需要答案的人想出的:
{{ html()->select('contact_detail_type_id')
->children($contact_detail_types, function ($contact_detail_type, $id) use ($option_attributes){
return html()->option($contact_detail_type, $id)->attribute('data-input-mask', $option_attributes[$id]['data-input-mask']);
})
->class('form-control kt-select2' . ($errors->has('contact_detail_type_id') ? ' is-invalid' : '')) }}