public function createOrEdit(Request $request) { $this->validate($request, ['task_id' => 'required|numeric', 'files' => 'required|array', 'files.*.name' => 'required|min:2|max:60', 'files.*.data' => 'required|min:2|max:1000000']); $task_id = $request->input('task_id'); $user_id = $request->user()->id; $filesArray = $request->input('files'); $task = Task::where('id', $task_id)->first(); if (!$task) { abort(406); } $solution = null; $solution_id = $request->input('solution_id'); if (!empty($solution_id) && is_numeric($solution_id)) { $solution = Solution::where('id', $solution_id)->where('user_id', $request->user()->id)->where('deleted', false)->first(); if (!$solution) { abort(406); } DB::table('solution_files')->where('solution_id', $solution_id)->where('user_id', $request->user()->id)->update(array('deleted' => true)); } else { $solution_id = null; $solution = new Solution(); Statistic::AddSolution(); } $solution->user_id = $user_id; $solution->task_id = $task_id; $pass = $solution->save(); $this->clearCache($solution); if (is_array($filesArray)) { foreach ($filesArray as $file) { $solutionFile = new SolutionFile(); $solutionFile->name = $file['name']; $solutionFile->data = $file['data']; $solutionFile->user_id = $request->user()->id; $solutionFile->solution_id = $solution->id; if (!$solutionFile->save()) { $pass = false; } } } if ($pass) { Alert::setSuccessAlert(Lang::get('app.solution_save')); } else { Log::alert(__METHOD__ . '(' . __FILE__ . ')', array('solution_id' => $solution->id, 'user_id' => Auth::user()->id)); Alert::setErrorAlert(Lang::get('app.unknown_error')); } return redirect()->action('HomeController@index'); }
/** * Update the specified resource in storage. * * @param Solution $solution * @return Response */ public function update($solution) { $solution->fill(Input::data()); $solution->save(); return $solution; }