public function response($id, Request $request) { $ticket = Ticket::find($id); if (!$ticket) { return redirect('/')->withErrors(config('constants.NA')); } $files = $request->file('file'); $file_count = count($files); if ($request->hasFile('file') && $file_count > config('config.max_file_upload_at_once')) { return redirect()->back()->withErrors('Max ' . config('config.max_file_upload_at_once') . ' files are allowed to upload at once.'); } $uploadcount = 0; $uploaded_file = array(); if ($request->hasFile('file')) { foreach ($files as $file) { $filename = uniqid(); $rules = array('file' => 'mimes:' . config('config.allowed_upload_file')); $validator = Validator::make(array('file' => $file), $rules); if ($validator->passes()) { $destinationPath = 'uploads/response_attachment'; $name = $file->getClientOriginalName(); $extension = $file->getClientOriginalExtension(); $upload_success = $file->move($destinationPath, $filename . "." . $extension); $uploaded_file[] = $filename . '.' . $extension; $uploadcount++; } } } if ($file_count > 0 && $uploadcount == 0 && $request->hasFile('file')) { return redirect()->back()->withErrors('Only some files are allowed.'); } $ticket_response = new TicketResponse(); if ($uploadcount > 0) { $ticket_response->attachments = implode(',', $uploaded_file); } $title = $request->input('mail_subject'); $content = $request->input('response_description'); $ticket_response->response_description = $content; $ticket_response->user_id = Auth::user()->id; $ticket_response->ticket_id = $id; $ticket_response->set_response_time = $request->input('set_response_time') ? time() : null; $ticket_response->set_resolution_time = $request->input('set_resolution_time') ? time() : null; $ticket_response->save(); if ($ticket_response->set_response_time) { $ticket->responded = 1; } if ($ticket_response->set_resolution_time) { $ticket->resolved = 1; } $ticket->ticket_status = $request->input('ticket_status'); $ticket->save(); if ($request->input('send_mail')) { Mail::send('template.mail', compact('content'), function ($message) use($ticket, $title) { $message->to($ticket->User->email)->subject($title); }); } return redirect()->back()->withSuccess('Ticket reply sent.'); }