update recipe ingredients
This commit is contained in:
parent
7ef799668a
commit
25bd38ece7
@ -118,6 +118,40 @@ final class RecipeController
|
||||
self::fillRecipeFromPostParams($O_recipe, $A_postParams);
|
||||
$O_recipe->update();
|
||||
|
||||
$A_ingredientNames = Utils::getOrDie($A_postParams, "recipeIngredientNames");
|
||||
$A_ingredientQuantities = Utils::getOrDie($A_postParams, "recipeIngredientQuantities");
|
||||
|
||||
$A_ingrsInDB = IngredientModel::searchByRecipe($O_recipe->I_ID);
|
||||
|
||||
for($i=0; $i<count($A_ingredientNames); $i++) {
|
||||
$O_ingr = null;
|
||||
|
||||
// search ingredient in DB's list
|
||||
foreach($A_ingrsInDB as $O_ingr_loop) {
|
||||
if($O_ingr_loop->S_NAME === $A_ingredientNames[$i]) {
|
||||
$O_ingr = $O_ingr_loop;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($O_ingr === null) {
|
||||
// if not present, create if and insert it
|
||||
$O_ingr = new IngredientModel(
|
||||
$O_recipe->I_ID,
|
||||
$A_ingredientNames[$i],
|
||||
$A_ingredientQuantities[$i]
|
||||
);
|
||||
$O_ingr->insert();
|
||||
} else {
|
||||
$O_ingr->S_QUANTITY = $A_ingredientQuantities[$i];
|
||||
$O_ingr->update();
|
||||
// if already present, update it and remove it from $A_ingrsInDB
|
||||
|
||||
$ingr_key = array_search($O_ingr, $A_ingrsInDB, true);
|
||||
unset($A_ingrsInDB[$ingr_key]);
|
||||
}
|
||||
}
|
||||
|
||||
header("Location: /recipe/view/".$O_recipe->I_ID);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user