Kontrola vstupu – kde se má provést?
- rosakovnik
- Člen | 13
Zdravím,
mám takový dotaz, na který jsem kupodivu nenašel nikde uspokojující odpověď.
Vytvořil jsem nákupní košík. Mám v databázi tabulky meal a
ingredient.
Mám presenter, který má umožnit upravit objednané jídlo tak, že můžeme
libovolně přidávat ingredience do jídla (případně je zase
odebírat pryč)
V tomto presenteru mám funkci handleAddExtraIngredient($mealId, $ingredientId, $amount).
Moje otázka zní, kde mám vlastně provést kontrolu, jestli $mealId existuje v databázi a zda-li existuje $ingredientId?
Měl bych to udělat v presenteru, tedy v handleAddExtraIngredient, že bych přes model zavolal například $productManager->getMeal($mealId), zjistil jestli mi to vrátilo výsledek a až poté zavolal $orderManager->updateIngredient($mealId, $ingredientId, $amount), která bude počítat s tím, že mu dáváme korektní vstup s existujícími jídly a ingrediencemi
anebo bych měl v handle zavolat rovnou updateIngredient, která by zjišťovala, jestli obdržela korektní vstup?
Pokud je odpověď, že by se validace měla provádět v handle, tak mám doplňující otázku, zda-li je v pořádku, pokud bych do modelu, tedy do funkce updateIngredient rovnou předal ActiveRow, který mi vrátil $productManager->getMeal($mealId), abych Tím zamezil například opakovanému dotazu do databáze v rámci jednoho requestu?
Mockrát děkuji za jakoukoliv odpověď, snad jsem problém popsal srozumitelně.
Děkuji