Tabella – postup při ukládání dat

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kokoumes
Člen | 39
+
0
-

Zdravím, potřeboval bych poradit od zkušenějších.
Používám Tabellu a potřeboval bych poradit s načítáním dat po uložení nového řádku.
Momentálně jako zdroj dat používám klasický dibi dataSource s tím, že mám přesně daná id řádků které chci zobrazit. Problém nastává pokud vložím nový řádek. V tomto okamžiku potřebuji přidat nové id řádku do již stávajících id.
Postup pří ukládání je:
tabela zavolá public static function save() – zde dokážu zjistit id nově vloženého řádku
a pak volá znovu public static function dataSource()
Pořád nevím jak dostat proměnou newId z funkce save do fce dataSource. Přes $this->neco mi to hlásí chybu.
Možná to bude banalita, ale bohužel nepřišel jsem na to jak a proto prosím o pomoc.
Předem děkuji.

Editoval kokoumes (27. 2. 2012 16:23)

kokoumes
Člen | 39
+
0
-

Opravdu nikdo netuší? Pokud jsem to špatně popsal, dejte mi prosím vědět..mo díky

Michal Vyšinský
Člen | 608
+
0
-

Tabellu nepoužívám, ale jako hlavní problém vidím v tom, že se ve statické metodě snažíš dostat k $this – to nelze. Zkus vytvořit statickou proměnnou static $newId;, kterou v metodě save() naplníš pomocí self::$newId = XXX; a pak ji můžeš použít v metodě dataSource() (také self::$newId) potom bych ji ve stejné metodě z bezpečnostních důvodů vynuloval (nevím jestli je to nutné): self::$newId = NULL

Editoval CherryBoss (28. 2. 2012 9:09)

kokoumes
Člen | 39
+
0
-

Do háje… všechno špatně…
Statická proměná je OK, ale právě jsem zjistil, že se nejdříve volá dataSource a až pak Save. Tak teď jsem z toho už úplně mimo… :-(
Nenapadá někoho jak to udělat aby šel nejříve Save a pak až dataSource?