if (Input::has('RecipeIngredientId')) { $ingredientIds = Input::get('RecipeIngredientId'); $itemCounts = Input::get('ItemCount'); $itemSizes = Input::get('ItemSize'); $ingredientNames = Input::get('RecipeIngredientName'); $ingredientNotes = Input::get('RecipeIngredientNote'); // loop through tag ids submitted from create post form foreach ($ingredientIds as $key => $n) { // look up the existing Tag by ID $ingredient = RecipeIngredient::find($ingredientIds[$key]); // Create ingredient if it doesn't exist if (!$ingredient) { $ingredient = new RecipeIngredient(); $ingredient->RecipeId = $recipe->RecipeId; } $ingredient->ItemCount = fractionToDecimal($itemCounts[$key]); $ingredient->ItemSize = $itemSizes[$key]; $ingredient->RecipeIngredientName = $ingredientNames[$key]; $ingredient->RecipeIngredientNote = $ingredientNotes[$key]; // save the Tag on the Post $recipe->ingredients()->save($ingredient); $currentIngredientIds[] = $ingredient->RecipeIngredientId; } } //$recipe->save(); return Redirect::to('recipe'); }); Route::post('recipe/delete/{id}', function ($id) { $recipe = Recipe::find($id); $recipe->delete(); return Redirect::to('recipe');
function parseRecipe($html, $url) { $parsedRecipe = RecipeParser::parse($html, $url); $recipe = new Recipe(); $recipe->RecipeName = $parsedRecipe->title; $recipe->ServingCount = getNumberFromString($parsedRecipe->yield); $recipe->PrepTimeMinute = $parsedRecipe->time['prep']; $recipe->CookTimeMinute = $parsedRecipe->time['cook']; $recipe->RecipeNote = $parsedRecipe->url; $directions = ''; foreach ($parsedRecipe->instructions[0]['list'] as $key => $n) { if ($directions != '') { $directions .= "\n\n"; } $directions .= $parsedRecipe->instructions[0]['list'][$key]; } $recipe->Directions = $directions; $recipe->save(); foreach ($parsedRecipe->ingredients[0]['list'] as $key => $n) { $ingredient = new RecipeIngredient(); $ingredient->RecipeId = $recipe->RecipeId; $origText = $parsedRecipe->ingredients[0]['list'][$key]; try { $text = trim($origText); preg_match('~[a-z]~i', $text, $match, PREG_OFFSET_CAPTURE); $count = substr($text, 0, $match[0][1]); $countEncode = urlencode($count); $countEncode = str_replace("%C2%BC", " 1/4", $countEncode); $countEncode = str_replace("%C2%BD", " 1/2", $countEncode); $countEncode = str_replace("%C2%BE", " 3/4", $countEncode); $count = urldecode($countEncode); $count = str_replace("-", " ", $count); $count = fractionToDecimal($count); $text = trim(substr($text, $match[0][1])); $size = getItemSize(substr($text, 0, strpos($text, " "))); if (!isNullOrEmptyString($size)) { $text = trim(substr($text, strpos($text, " "))); } $ingredient->ItemCount = $count; $ingredient->ItemSize = $size; $ingredient->RecipeIngredientName = $text; //$ingredient->RecipeIngredientNote = $origText; } catch (Exception $e) { $ingredient->RecipeIngredientName = $origText; $ingredient->RecipeIngredientNote = $e->getMessage(); } // save the Tag on the Post $recipe->ingredients()->save($ingredient); } if (!isNullOrEmptyString($parsedRecipe->photo_url)) { saveImage($recipe, $parsedRecipe->photo_url); } return $recipe; }