Exemplo n.º 1
0
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $this->validate($request, ['name' => 'required|unique:projects|max:255', 'rank' => 'required|integer', 'date_start' => 'date', 'date_end' => 'date', 'descriptions.id' => 'integer', 'descriptions.rank' => 'required|integer', 'descriptions.text' => 'required|max:500']);
     DB::beginTransaction();
     $project = Project::find($id);
     if (!$project->save($request->only(['name', 'rank', 'date_start', 'date_end']))) {
         DB::rollback();
         return redirect()->back()->withError('Could not save project');
     }
     $descriptions = [];
     foreach ($request->get('descriptions') as $description) {
         if ($description['id']) {
             $descriptions[] = Description::find($description['id']);
         } else {
             $descriptions[] = new Description($description);
         }
     }
     if (!$project->descriptions()->saveMany($descriptions)) {
         DB::rollback();
         return redirect()->back()->withError('Could not save description');
     }
     DB::commit();
     return redirect('admin');
 }
Exemplo n.º 2
0
 public static function getTutorialStepByProjectId($projID)
 {
     $steps = \App\Project::find($projID)->descriptions->sortBy('step');
     foreach ($steps as $step) {
         $images = \App\Description::find($step->id)->images;
         $step->images = $images;
         $materials = \App\Description::find($step->id)->materials;
         $step->materials = $materials;
     }
     //dump($steps);
     return $steps;
 }