@php $casefield = [ 'type' => 'case_radio', 'name' => 'indicator_casecriteria_id', 'options' => collect($indicatorCasecriterias->pluck('title', 'id'))->toArray(), "criteria_id" => $criteria->id, "label" => "", ]; $casefieldView = $crud->getFirstFieldView($casefield['type'], $casefield['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($casefield['name'])) { if(!Str::contains($casefield['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[$casefield['name']]) || isset($row[$casefield['name'].'[]'])) { $casefield['value'] = $row[$casefield['name']] ?? $row[$casefield['name'].'[]']; } $casefield['name'] = $field['name'].'['.$row_key.']['.$casefield['name'].']'; }else{ $casefield['value'] = \Arr::get($row, $casefield['name']); $casefield['name'] = $field['name'].'['.$row_key.']['.Str::replace('.', '][', $casefield['name']).']'; } }else{ foreach ($casefield['name'] as $k => $item) { $casefield['name'][$k] = $field['name'].'['.$row_key.']['.$item.']'; $casefield['value'][$casefield['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($casefield['name'])) { $casefield['name'] = $field['name'].'['.$row_key.']['.$casefield['name'].']'; }else{ foreach($casefield['name'] as $k => $subfieldName) { $casefield['name'][$k] = $field['name'].'['.$row_key.']['.$subfieldName.']'; } } } if(!empty($indicator_case) && !empty($indicator_case->indicator_casecriteria_id)) { $casefield['value'] = $indicator_case->indicator_casecriteria_id; } @endphp