public function create(Requests\ApplyForLeaveRequest $request) { $params = $request->all(); $response = new ResponseEntity(); try { DB::transaction(function () use(&$response, $params) { $application = new LeaveApplication(); $application->purpose = $params['purpose']; $application->no_of_days = $params['no_of_days']; $application->leave_type_id = $params['leave_type_id']; $application->employee_id = $this->employeeId; $application->date_filed = Carbon::now()->toDateString(); $application->created_by_user_id = $this->userId; $a = $application->save(); if ($a) { $dates = $params['dates']; if (is_array($dates) && count($dates) > 0) { foreach ($dates as $d) { // e.g. : 01/26/2016 - 01/26/2016 $dArr = explode(' - ', $d); $lad = new LeaveApplicationDetails(); $lad->date_from = Carbon::createFromFormat('m/d/Y', $dArr[0])->toDateString(); $lad->date_to = Carbon::createFromFormat('m/d/Y', $dArr[1])->toDateString(); $lad->leave_application_id = $application->id; $lad->save(); } } $response->setMessages(['Leave application successfully saved!']); $response->setSuccess(true); } else { $response->setMessages(['Failed to process leave application!']); } }); } catch (\Exception $ex) { $response->setMessages(['Exception: ' . $ex->getMessage()]); } return $response->toArray(); }