Пример #1
0
 public function update_recipe()
 {
     $flash_string = '';
     if (Session::exists('account')) {
         $flash_string = Session::flash('account');
     }
     $user = new User();
     if ($user->isLoggedIn()) {
         if (Input::exists()) {
             //First Validate the recipe data sent
             //Update recipe data
             Recipe::updateFields(Input::get('recipe_id'), ['yeild' => Input::get('recipe_yeild'), 'yeildUnit' => Input::get('recipe_unit'), 'method' => filter_var(Input::get('recipe_method'), FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_HIGH), 'recipeName' => Input::get('recipe_name'), 'recipeCost' => Input::get('recipe_cost')]);
             //foreach ingredient
             $currentIds = array_column(Recipe::getIngredients(Input::get('recipe_id')), 'id');
             $i = 0;
             while (Input::get('id' . $i) !== '') {
                 $id = Input::get('id' . $i);
                 if (!in_array($id, $currentIds)) {
                     //create it
                     Recipe::addIngredient(Input::get('recipe_id'), $id, Input::get('quantity' . $i), Input::get('unit' . $i));
                     echo var_dump($currentIds);
                 } else {
                     //modify the Ingredient
                     Recipe::changeIngredientUnit(Input::get('recipe_id'), $id, Input::get('unit' . $i));
                     Recipe::changeIngredientQuantity(Input::get('recipe_id'), $id, Input::get('quantity' . $i));
                     //tick off $currentId from the list of $currentIds
                     $key = array_search($id, $currentIds);
                     echo 'removing from array id No.' . $currentIds[$key] . "\n";
                     unset($currentIds[$key]);
                 }
                 $i++;
             }
             //if there are any ingredients left in $currentIds then they have been deleted
             echo var_dump($currentIds);
             if (count($currentIds)) {
                 foreach ($currentIds as $id) {
                     echo $id . " being deleted\n";
                     Recipe::deleteIngredient(Input::get('recipe_id'), $id);
                 }
             }
             Session::flash('account', $error_string);
             //redirect here
             Redirect::to('account/recipes');
         } else {
             $this->view('account/recipes', ['register' => true, 'loggedIn' => 1, 'flash' => $flash_string, 'name' => $user->data()->name, 'page_name' => "", 'user_id' => $user->data()->id]);
         }
     } else {
         Session::flash('home', 'You have been logged out, please log back in');
         Redirect::to('home');
     }
 }