Example #1
0
 private function saveRecipe(Recipe $recipe)
 {
     $input = Input::only('title', 'people', 'presentation', 'year', 'season', 'cookbook', 'category', 'temperature', 'visibility', 'tracking_nr');
     $recipe->fill($input);
     if (empty($recipe->tracking_nr)) {
         $recipe->tracking_nr = $this->db->table('recipes')->max('tracking_nr') + 1;
     }
     if (Input::has('lang')) {
         $recipe->language = Input::get('lang');
     }
     if (Input::has('directions')) {
         $recipe->description = Input::get('directions');
     }
     // Override the category if the user provided one.
     if (!empty(Input::get('category_alt'))) {
         $recipe->category = Input::get('category_alt');
     }
     try {
         $recipe_saved = $recipe->save();
     } catch (QueryException $e) {
         $recipe->tracking_nr = $this->db->table('recipes')->max('tracking_nr') + 1;
         $recipe_saved = $recipe->save();
         Session::flash('warning', 'Let op: je recept is onder een nieuw volgnummer bewaard, omdat het opgegeven nummer al in gebruik was.');
     }
     if (RequestFacade::hasFile('picture')) {
         $path = join(DIRECTORY_SEPARATOR, [public_path(), 'uploads', 'pictures']);
         $filename = $recipe->tracking_nr . '.jpg';
         $file = RequestFacade::file('picture')->move($path, $filename);
         $image = Image::make($file)->widen(480);
         $image->save($path . DIRECTORY_SEPARATOR . $filename);
     }
     $ingredients_saved = $recipe->saveIngredientsFromText(Input::get('ingredients'));
     if ($recipe_saved && $ingredients_saved) {
         return redirect()->route('recipes.show', ['recipes' => $recipe->tracking_nr])->with('lang', $recipe->language);
     } else {
         abort(500);
     }
 }