Pridani dat do vysledku z Nette\Database
- saimons
- Člen | 293
Zdravim potreboval bych radu ohledne nasledujici situace:
Pres Nette\Database si udelam select, ktery mi vrati data v Nette\Database\Table\Selection, tyto data chci v templatu vypisovat pomoci foreach do tabulky. Do ted vse v poradku, ale z vypsanych dat chci delat jeste nake slozitejsi vypocty pro kazdy zaznam (vypocet je v metode v samostatne tride). Jde o to jakym zposobem vypoctena data priradit ke konretnim radkum z DB a vypsat je.
Moje reseni jsem udelal tak, ze si v presenteru zavolam metodu, ktera mi provede vypocty a ulozi do asociativniho pole s klicem, ktery je roven primarnimu klici z DB. Pri vypise v template jen pristupuju ke konkretnim prvkum z pole a vypisuji.
Napadlo me jeste reseni pres halper, ale nelibi se mi, ze mi tam bude v template vstupovat treba deset promenych → template bude pak neprehledny.
Je jeste nake jine, lepsi, hezci reseni? S touto situaci se pri programovani setkavam pomerne casto, tak by me zajimalo, jak nejlepe na to. :)
Predem diky.
Editoval saimons (17. 4. 2012 13:51)
- uestla
- Backer | 799
No čirou náhodou jsem to samé řešil před chvílí na anglickém fóru, tak se můžeš poohlédnout tam :-)
https://forum.nette.org/…rom-database#…
Mělo by to být to, co hledáš…
- saimons
- Člen | 293
Diky za informace je mi celkem jasne jak to funguje, ale neprisel jsem na to jak to pouzit. Protoze pokud delam v modelu select napr:
$database = new Nette\Database\Connection;
$result = $database->table('user');
Tak $result je objekt typu Nette\Database\Table\Selection, ale ja potrebuju aby byl typu Nette\Database\Table\MySelection a tam jsem mel moznost predelat metodu createRow(), ale nevim jak tohodle muzu docilit?
Editoval saimons (18. 4. 2012 11:29)