Exemplo n.º 1
0
 public function update($id)
 {
     $meal = Meal::find($id);
     $meal->name = Input::get('name');
     $meal->description = Input::get('description');
     $meal->street = Input::get('street');
     $meal->city = Input::get('city');
     $meal->zip_code = Input::get('zip_code');
     $meal->seats = Input::get('seats');
     // get and parse date
     $date = Input::get('meal_date');
     $date_array = explode("/", $date);
     $day = (int) $date_array[0];
     $month = (int) $date_array[1];
     $year = (int) $date_array[2];
     // get and parse time
     $time = Input::get('meal_time');
     $time_array = explode(":", $time);
     $hour = (int) $time_array[0];
     $minutes = (int) $time_array[1];
     // create new dateTime
     $date_time = Carbon::create($year, $month, $day, $hour, $minutes);
     $meal->meal_date_time = $date_time;
     // create ingredients
     $ingredients = Input::get('ingredient');
     $meal_ingredients = array();
     foreach ($ingredients as $ingredient) {
         $meal_ingredients[] = Ingredient::firstOrNew(array('name' => $ingredient['name']))->fill(array('unit' => $ingredient['unit'], 'quantity' => $ingredient['quantity']));
     }
     // delete existing ingredients
     foreach ($meal->ingredients as $ingredient) {
         if (!in_array($ingredient, $meal_ingredients)) {
             $ingredient->delete();
         }
     }
     //save  into the DB
     $meal->save();
     $meal->ingredients()->saveMany($meal_ingredients);
     // redirect
     Flash::success('Votre repas a bien été mis à jour!');
     return Redirect::route('meals.show', $meal);
 }