@php Assets::addScriptsDirectly('vendor/core/core/base/js/repeater-field.js'); $values = array_values(is_array($value) ? $value : (array) json_decode($value ?: '[]', true)); $added = []; if (! empty($values)) { for ($i = 0; $i < count($values); $i++) { $group = ''; foreach ($fields as $key => $field) { $item = Form::hidden($name . '[' . $i . '][' . $key . '][key]', $field['attributes']['name']); $field['attributes']['name'] = $name . '[' . $i . '][' . $key . '][value]'; $field['attributes']['value'] = Arr::get($values, $i . '.' . $key . '.value'); $field['attributes']['options']['id'] = $id = 'repeater_field_' . md5($field['attributes']['name']); Arr::set($field, 'attributes.id', $id); Arr::set($field, 'label_attr.for', $id); $item .= Blade::render(sprintf('%s', Html::attributes(Arr::get($field, 'label_attr', [])), $field['label'])); $item .= call_user_func_array([Form::class, $field['type']], array_values($field['attributes'])); $group .= Blade::render(sprintf("%s", $item)); } $added[] = Blade::render(sprintf('
%s
', $group)); } } $group = ''; foreach ($fields as $key => $field) { $item = Form::hidden($name . '[__key__][' . $key . '][key]', $field['attributes']['name']); $field['attributes']['name'] = $name . '[__key__][' . $key . '][value]'; $field['attributes']['options']['id'] = 'repeater_field_' . md5($field['attributes']['name']) . '__key__'; Arr::set($field, 'label_attr.for', $field['attributes']['options']['id']); $item .= Blade::render(sprintf('%s', Html::attributes(Arr::get($field, 'label_attr', [])), $field['label'])); $item .= call_user_func_array([Form::class, $field['type']], array_values($field['attributes'])); $group .= Blade::render(sprintf('%s', $item)); } $defaultFields = [Blade::render(sprintf('
%s
', $group))]; $repeaterId = 'repeater_field_' . md5($name) . '_' . uniqid(); @endphp
@foreach ($added as $field)
{!! $field !!}
@endforeach
{{ __('Add new') }}
@foreach($defaultFields as $defaultFieldIndex => $defaultField)
__fields__
@endforeach
{{ $defaultField }}