spatie/laravel-html - 添加自定义数据属性以选择选项

问题描述 投票:0回答:1

我在尝试使用 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 传递给自定义 -> 选项调用/子函数?

laravel laravelcollective
1个回答
0
投票

这就是我为那些需要答案的人想出的:

{{ 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' : '')) }}
© www.soinside.com 2019 - 2024. All rights reserved.