public function loadsrc(Request $request) { // sleep(2); $postData = $request->all(); $sourceColumn = $postData['name']; $sourceColumnValue = $postData['value']; $bunde = []; $dataSet = []; if ($sourceColumn == 'DEFER_GROUP_TYPE') { $codeColumn = 'DEFER_GROUP_CODE'; $entry = CodeDeferGroupType::select("CODE as {$codeColumn}")->find($sourceColumnValue); $bunde[$codeColumn] = $entry->{$codeColumn}; $facility_id = $postData['Facility']; $bunde['FACILITY_ID'] = $facility_id; } $targetExists = true; $loopIndex = 0; while ($loopIndex < 5) { $loopIndex++; if (!array_key_exists($sourceColumn, $this->extraDataSetColumns)) { break; } $extraDataSetColumn = $this->extraDataSetColumns[$sourceColumn]; $targetColumn = $extraDataSetColumn['column']; $data = $this->loadTargetEntries($sourceColumnValue, $sourceColumn, $extraDataSetColumn, $bunde); $dataSet[$targetColumn] = ['data' => $data, 'ofId' => $sourceColumnValue, 'sourceColumn' => $sourceColumn]; $sourceColumn = $targetColumn; $sourceColumnValue = $data && $data->count() > 0 ? $data[0]->ID : null; if (!$sourceColumnValue) { break; } } return response()->json(['dataSet' => $dataSet, 'postData' => $postData]); }