/** * Validate the input and update the ProjectPhaseDocument in the database. * * @param \Illuminate\Http\Request $request * @param int $projectId * @param int $projectPhaseId * @param int $projectPhaseDocumentId * * @return Response */ public function update(Request $request, $projectId, $projectPhaseId, $projectPhaseDocumentId) { $projectPhaseDocument = ProjectPhaseDocument::where('id', '=', $projectPhaseDocumentId)->where('project_phase_id', '=', $projectPhaseId)->with(['phase'])->firstOrFail(); // Clone old document to create history $historyDocument = new ProjectPhaseDocument(); $historyDocument->fill(['project_phase_id' => $projectPhaseDocument->project_phase_id, 'parent_project_phase_document_id' => $projectPhaseDocument->id, 'title' => $projectPhaseDocument->title, 'content' => $projectPhaseDocument->content, 'type' => ProjectPhaseDocument::TYPE_HISTORY]); if (!$historyDocument->save()) { abort(500); } // Update base document $projectPhaseDocument->fill(['title' => $request->input('title'), 'content' => $request->input('content'), 'type' => $request->input('type')]); if (!$projectPhaseDocument->save()) { abort(503); } return redirect()->route('project.phase.document.show', ['project' => $projectPhaseDocument->phase->project_id, 'phase' => $projectPhaseDocument->project_phase_id, 'document' => $projectPhaseDocument->id]); }