stejný dotaz, různé sloupce ve výpisu → No reference found for

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

Ahoj všem,
mám tabulku menu (dump), která mi reprezentuje stromovou strukturu menu, pomocí sloupce parent_id, který odkazuje na rodičovský prvek.

V Adminmodul a Frontmodul mám stejné funkce, které mi rekurzivně generují pole objektů ActiveRow, představující vzhled menu, tak jak se bude vypisovat. V každém modulu se vypisují odlišné sloupce. Aplikaci jsem co nejvíce osekal, složka app ke stažení.

Pokud je smazaná cache, funguje vše jak má, avšak

  • pokud zavolám Adminmodul a následně FrontModul, laděnka u Frontmodul vypíše chybu PDOException No reference found for $menu->url (laděnka ke stažení)
  • pokud zavolám Frontmodul a následně AdminModul, laděnka u Adminmodul vypíše chybu PDOException No reference found for $menu->added. (laděnka ke stažení)

Jakmile udělám u stránky s chybou refresh, jede už vše v pořádku…

Máte někdo prosím nějakou radu, kde by mohl být zakopaný pes?
děkuji

Caine
Člen | 216
+
0
-

Chyba je nekde v Nette database, a kdyz se mi tohle deje, tak u dotazu explicitne uvadim ->select('*')

secmi
Člen | 19
+
0
-

Díky moc, funguje podle představ.

Taková hloupost :(

hrach
Člen | 1838
+
0
-

diky, to bude bug, nech mi prosim uploadnute ty test scripty, pak bych to odladil.

secmi
Člen | 19
+
0
-

Dobře, nechám je tam, to není problém.

hrach
Člen | 1838
+
0
-

muzes pls testnout, jestli tady to neni nahodou fixnute? https://github.com/…tte/pull/798

VojtaSvoboda
Člen | 2
+
0
-

Ahoj, mám úplně samý problém. Vše funguje ok, ale pokud smažu cache, tak se na stránce s výpisem produktů vyhodí chyba:

No reference found for $products->monthly_items

Pokud dám F5, vše zase funguje v pohodě.

Podle mě je problém v tom, že monthly_items je atribut, který není přímo v Db, ale načítá se v actionDefault() až po vytažení dat. Pokud do dotazu doplním ->select(*) tak to funguje v pohodě i při smazání cache, ale není to pro mě ideální, protože získávání dat řeším v BaseRepository, takže se to ->select(*) aplikuje úplně pro všechny repozitáře celé aplikace.

dump() jednoho vytaženého produktu po smazání cache a po znovunačtení: https://gist.github.com/4297333#…

Nette Framework (version 2.0.7 released on 2012–11–28
MySQL 5.1.37, Apache/2.2.12, PHP/5.3.0, všechny tabulky InnoDB

Editoval VojtaSvoboda (17. 12. 2012 0:05)

enumag
Člen | 2118
+
0
-

Zkus Nette 2.1-dev, ve 2.0 tyhle chyby opravené nejsou a s největší pravděpodobností ani nikdy nebudou protože během oprav se vyskytlo několik BC breaků.

saimons
Člen | 293
+
0
-

Daj se pouzit pouze knihovny pro Nette/Databese z verze dev? Nebo spis jak jsou na tom ostatni veci v dev? Kdyz to nasadim na produkcni server, abych tam nemel misto chyb z Nette/DB uplne jine?