@if ($hidden ?? false)
@endif
@if (isset($field['subfields']) && is_array($field['subfields']) && count($field['subfields']))
@if ($field['reorder']) @endif
@foreach($field['subfields'] as $subfield) @php $subfieldView = $crud->getFirstFieldView($subfield['type'], $subfield['view_namespace'] ?? false); foreach((array)$subfield['name'] as $subfieldName) { if($crud->isRequired($field['name'].'.'.$subfieldName)) { $subfield['showAsterisk'] = $field['showAsterisk'] ?? true; } } if(isset($row)) { // Cast objects to array (could be a translation object, or a developer provided collection). if (is_object($row)) { $row = collect($row)->toArray(); } if(!is_array($subfield['name'])) { if(!Str::contains($subfield['name'], '.')) { // this is a fix for 4.1 repeatable names that when the field was multiple, saved the keys with `[]` in the end. Eg: `tags[]` instead of `tags` if(isset($row[$subfield['name']]) || isset($row[$subfield['name'].'[]'])) { $subfield['value'] = $row[$subfield['name']] ?? $row[$subfield['name'].'[]']; } $subfield['name'] = $field['name'].'['.$repeatable_row_key.']['.$subfield['name'].']'; }else{ $subfield['value'] = \Arr::get($row, $subfield['name']); $subfield['name'] = $field['name'].'['.$repeatable_row_key.']['.Str::replace('.', '][', $subfield['name']).']'; } }else{ foreach ($subfield['name'] as $k => $item) { $subfield['name'][$k] = $field['name'].'['.$repeatable_row_key.']['.$item.']'; $subfield['value'][$subfield['name'][$k]] = \Arr::get($row, $item); } } } else { // use an un-matchable field name to avoid field initialization problems // this would prevent the field from EVER get value in old() and triggering errors. if(!is_array($subfield['name'])) { $subfield['name'] = $field['name'].'[-1]['.$subfield['name'].']'; }else{ foreach($subfield['name'] as $k => $subfieldName) { $subfield['name'][$k] = $field['name'].'[-1]['.$subfieldName.']'; } } } @endphp @include($subfieldView, ['field' => $subfield]) @endforeach @endif
@if ($hidden ?? false)
@endif