Komunikace mezi dvěma modely
- MikeLacroix
- Člen | 60
Zdravím,
řekl bych, že mám asi špatný návrh.
Mám třídy CategoryRepository a ProductRepository. Ve třídě CategoryRepository chci implementovat metodu remove($id), která danou kategorii odstraní. Před samotným odstraněním bych však rád zkontroloval, zda se v dané kategorii nenachází nějaký produkt. Takže bych potřeboval volat něco jako ProductRepository->countInCategory($id).
Jak se toto řeší?
- romiix.org
- Člen | 343
Riešil by som to cez cudzie kľúče priamo v DB.
Ak chceš, aby sa automaticky odstránili aj produkty, nastav si cudzí
kľúč z product
na tabuľku category
na
ON DELETE CASCADE
.
Ak chceš odstráneniu kategórie v prípade ak nie je prázdna zabrániť,
použi cudzí kľúč ON DELETE RESTRICT
. Databáza ti takéto
zmazanie nepovolí a vyhodí sa výnimka s ktorou môžeš následne
pracovať.