@php $row_key = 0; $step = 0; @endphp @foreach ($field['mainCategories'] as $repeatable_row_key => $mainCategory)

{{$mainCategory->title}}

@if ($hidden ?? false)
@endif
@if (isset($field['subfields']) && is_array($field['subfields']) && count($field['subfields'])) @if(!empty($mainCategory->items)) @foreach($mainCategory->items as $sub_key => $item) @if(!empty($step == 0)) @php $detail = Null; if(!empty($entry)) { $detail = $entry->detials() ->where('main_category_id', $mainCategory->id) ->whereNull('main_item_id') ->first(); } @endphp @foreach($field['subfields'] as $subfield) @php $mainCategoryId = $subfield['name'] == 'main_category_id' ? $mainCategory->id : NULL; @endphp @if(!empty($mainCategory->appendix) && $subfield['type'] == 'upload_multiple') @php $subfield['withFiles'] = [ 'fileNamer' => \Backpack\CRUD\app\Library\Uploaders\Support\FileNameGenerator::class, 'disk' => 'public', 'path' => $subfield['withFiles']['path'], ]; $subfieldViewAppendix = $crud->getFirstFieldView($subfield['type'], $subfield['view_namespace'] ?? false); 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'].'['.$row_key.']['.$subfield['name'].']'; }else{ $subfield['value'] = \Arr::get($row, $subfield['name']); $subfield['name'] = $field['name'].'['.$row_key.']['.Str::replace('.', '][', $subfield['name']).']'; } }else{ foreach ($subfield['name'] as $k => $item) { $subfield['name'][$k] = $field['name'].'['.$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'].'['.$row_key.']['.$subfield['name'].']'; }else{ foreach($subfield['name'] as $k => $subfieldName) { $subfield['name'][$k] = $field['name'].'['.$row_key.']['.$subfieldName.']'; } } } if(!empty($detail) && !empty($detail->appendix)) { $subfield['value'] = $detail->appendix; } $subfield['appendix'] = $mainCategory->appendix; @endphp @include($subfieldViewAppendix, ['field' => $subfield]) @endif @if(!empty($mainCategoryId)) @endif @if(!empty($detail)) @endif @endforeach @php $row_key++; @endphp @endif @php $detail = Null; if(!empty($entry)) { $detail = $entry->detials() ->where('main_category_id', $mainCategory->id) ->where('main_item_id', $item->id) ->first(); } $subfieldItem = [ 'type' => 'text', 'label' => $item->title, 'attributes' => [ 'placeholder' => str_replace('{count}', '', $item->placeholder) ], 'wrapper' => [ 'class' => 'col-md-11 offset-md-1 mt-5', ], 'name' => 'total' ]; if(!empty($detail)) { $subfieldItem['value'] = $detail?->total; } $subfieldView = $crud->getFirstFieldView($subfieldItem['type'], $subfieldItem['view_namespace'] ?? false); $subfieldItem['name'] = 'detials['.$row_key.']['.$subfieldItem['name'].']'; @endphp @if(!empty($item->additional))
@include($subfieldView, ['field' => $subfieldItem])
@php $subfieldAdditional = [ 'type' => 'text', 'label' => " ", 'attributes' => [ 'placeholder' => str_replace('{size}', '', $item->additional) ], 'wrapper' => [ 'class' => 'col-md-11 mt-5', ], 'name' => 'size' ]; if(!empty($detail)) { $subfieldAdditional['value'] = $detail?->size; } $subfieldViewAdditional = $crud->getFirstFieldView($subfieldAdditional['type'], $subfieldAdditional['view_namespace'] ?? false); $subfieldAdditional['name'] = 'detials['.$row_key.']['.$subfieldAdditional['name'].']'; @endphp @include($subfieldViewAdditional, ['field' => $subfieldAdditional])
@else @include($subfieldView, ['field' => $subfieldItem]) @endif @if(!empty($item->reference_attachment)) @php $subfieldReference = [ 'type' => 'upload', 'label' => $item->reference_attachment, 'disk' => 'public', 'prefix' => 'attachments/liquidtrashes/', 'withFiles' => [ 'fileNamer' => \Backpack\CRUD\app\Library\Uploaders\Support\FileNameGenerator::class, 'disk' => 'public', 'path' => 'attachments/liquidtrashes', ], 'wrapper' => [ 'class' => 'col-md-10 offset-md-2 mt-5', ], 'name' => 'attachment', ]; $subfieldViewReference = $crud->getFirstFieldView($subfieldReference['type'], $subfieldReference['view_namespace'] ?? false); 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($subfieldReference['name'])) { if(!Str::contains($subfieldReference['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[$subfieldReference['name']]) || isset($row[$subfieldReference['name'].'[]'])) { //$subfield['value'] = $row[$subfield['name']] ?? $row[$subfield['name'].'[]']; } $subfieldReference['name'] = $field['name'].'['.$row_key.']['.$subfieldReference['name'].']'; }else{ $subfieldReference['value'] = \Arr::get($row, $subfieldReference['name']); $subfieldReference['name'] = $field['name'].'['.$row_key.']['.Str::replace('.', '][', $subfieldReference['name']).']'; } }else{ foreach ($subfieldReference['name'] as $k => $item) { $subfieldReference['name'][$k] = $field['name'].'['.$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($subfieldReference['name'])) { $subfieldReference['name'] = $field['name'].'['.$row_key.']['.$subfieldReference['name'].']'; }else{ foreach($subfieldReference['name'] as $k => $subfieldName) { $subfieldReference['name'][$k] = $field['name'].'['.$row_key.']['.$subfieldName.']'; } } } if(!empty($detail) && !empty($detail->attachment)) { $subfieldReference['value'] = $detail->attachment; } @endphp @include($subfieldViewReference, ['field' => $subfieldReference]) @endif @if(!empty($item->appendix)) @php $subfieldItem = [ 'type' => 'upload_multiple', 'name' => 'appendix', 'disk' => 'public', 'withFiles' => [ 'fileNamer' => \Backpack\CRUD\app\Library\Uploaders\Support\FileNameGenerator::class, 'disk' => 'public', 'path' => 'attachments/liquidtrashes', ], 'label' => '', 'wrapper' => [ 'class' => 'col-md-10 offset-md-2 mt-5', ], ]; $subfieldViewAppendix = $crud->getFirstFieldView($subfieldItem['type'], $subfieldItem['view_namespace'] ?? false); $subfieldItem['name'] = 'detials['.$row_key.']['.$subfieldItem['name'].']'; if(!empty($detail) && !empty($detail->appendix)) { $subfieldItem['value'] = $detail->appendix; } $subfieldItem['appendix'] = $item->appendix; @endphp @include($subfieldViewAppendix, ['field' => $subfieldItem]) @else @endif @if(!empty($detail)) @endif @php $step++; $row_key++; @endphp @endforeach @endif @endif
@if ($hidden ?? false)
@endif @php $step = 0; @endphp @endforeach