Iterace SmartObject při použití private variables
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Fires
- Člen | 97
Zdravím , jak lze udělat iterátor nad nette smart object ? Mám objekt
v repozitory z něj chci vyfiltrovat proměnné které jsou nutné pro update v databázi. Bohužel nevím jak nad timto objektem iterovat když mám proměnné označené jako private, normálně jsem použival viz. níže, potřebuji vlastně jen seznam názvu proměnných
- Ondřej Kubíček
- Člen | 494
navíc jiná entita může mít jiný počet parametrů v konstruktoru
tak si ty property vytáhni z doc bloku pomocí reflexe
- Fires
- Člen | 97
- magicky strukturované pole – pole je vlastně to co mi Dibi vrátí z databáze (tzn. názvy sloupců), tím pádem při úpravě struktury db nemusím měnit konstruktor. Zároveň poměrně krásné je že v testech se hned odhalí nekonzistentní db protože se do objektu pokusí přiřadit proměnou která není definovaná v objektu a tím selže test.
- vyřešil jsem to přidáním 2 polí do entity jedno nese názvy sloupců potřebné k insertu do db, druhé názvy sloupců potřebných pro update. + přidáním příslušných metod ( getDataArrayForUpdate, getDataArrayForInsert) které podle polí vrátí čisté pole dat do DB.