fetchesHelpMenuUserAnswerSelected = $fetchesHelpMenuUserAnswerSelected; $this->uploadDocumentForHelpMenuProcessor = $uploadDocumentForHelpMenuProcessor; } public function execute($userId, $questionId, $request){ $filesUpload = $request->input('files'); $answer = null; try{ // $answer = $this->fetchesHelpMenuUserAnswerSelected->execute(['user_id' => $userId, 'question_id' => $questionId, 'order_by' => ['column' => 'id','DESC' => 1]]); $answer = $this->fetchesHelpMenuUserAnswerSelected->execute(['user_id' => $userId, 'question_id' => $questionId]); } catch (\Exception $exception){ $answer = null; } if(is_null($answer)) { $answer = new QAUserAnswerSelected; } $answer->user_id = $userId; $answer->question_id = $questionId; if ($request->has('answerObj')) { $answer->answer_option_id = intval($request->answerObj['id']); } $answer->free_text_answer = $request->answer; $answer->save(); if($filesUpload){ $result = $this->uploadDocumentForHelpMenuProcessor->execute($request, $answer); $newData = array_map(function ($item) { return [ 'document_id' => $item->document_id, 'file_id' => $item->id, ]; }, $result); $answer->free_text_answer = json_encode($newData); $answer->save(); } } }