@php $subfields = []; foreach ($field['subfields'] as $subfield) { 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 { if (!is_array($subfield['name'])) { $subfield['name'] = $field['name'] . '[#ROWKEY][' . $subfield['name'] . ']'; } else { foreach ($subfield['name'] as $k => $subfieldName) { $subfield['name'][$k] = $field['name'] . '[#ROWKEY][' . $subfieldName . ']'; } } } $subfields[] = $subfield; } $isRestricted = $restrictedForm && $repeatable_row_key != '#ROWKEY'; @endphp @php $orderField = $subfields[0]; $idField = $subfields[1]; $labelField = $subfields[2]; $kindField = $subfields[3]; $hintField = $subfields[4]; $optionsField = $subfields[5]; $isRequiredField = $subfields[6]; $isVisibleToJuryField = $subfields[7]; $applicantAttributeField = $subfields[8]; $enumFieldView = $crud->getFirstFieldView('enum', 'admin.crud.callforproposal.application.fields'); @endphp