Dibi – vazby medzi tabulkami

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

Zdravim. Vedel by mi niekto poradit, ako na vazby medzi tabulkami v Dibi? Napr.

V navode „Piseme prvu aplikaciu“ sa pouzivala Nette\Database, stacilo si spravit query na nedokoncene ulohy a nasledne v template stacilo napisat len tento nasledujuci kod pre vypisanie mena pouzivatela z inej tabulky.

<td>{$task->user->name}</td>

V Dibi toto neviem rozchodit. Tabulky spolu s ich struktorou a vazbami pouzivam tie iste ako v navode. Pise mi vsak tuto chybu

Undefined property: DibiRow::$user

Dakujem za odpovede.

Šaman
Člen | 2666
+
0
-

Jestli chceš používat tento jenoduchý přístup k tabulkám, použij Nette\Database.
Dibi tohle neumí, tam se pohybuješ daleko blíž SQL dotazu, než u NotORM resp NDatabase.

d4ncul
Člen | 41
+
0
-

Vdaka za radu. Len niekde som cital, ze NDatabase je vhodnejsie len pre ‚mensie‘, resp. zakladne webky s jednoduchymi prvkami pracujucimi s DB? Tzn. ze by som mal teda zvolit napr. Doctrine?

Šaman
Člen | 2666
+
0
-

No, až tak to neplatí.
Samozřejmě pokud budeš mít aplikaci, kde chceš optimalizovat složité joiny a kde budeš třeba používat i logiku na straně databáze (triggery, stored procedury), tak se ti magické skládání dotazu z NDatabase nehodí. Stačí to ale na naprostou většinu aplikací, které jsem zatím potkal.
Jinak samozřejmě můžeš i v NDatabase použít obyčejnou query a výsledek zpracovat neobjektově.

Doctrina trpí stejným neduhem – snaží se za tebe převést objekty na SQL dotaz, takže se špatně optimalizuje, pokud nechceš zabředat do jejich DQL apod. Pokud ji znáš jako své boty, tak se ji drž, ale jinak tě od ní zrazuji. Uč se buď Nette nebo Doctrine, obojí najednou je moc velké sousto.

U aplikace typu uloz.to, nebo seznam.cz je samozřejmě výběr databázové vrstvy a samotné databáze klíčový, ale třeba na takovéhle fórum bych se NDatabase nebál. (No, trochu bál, je stále ve vývoji:)

d4ncul
Člen | 41
+
0
-

Tak spravim to, ze si svoju aplikaciu postavim na NDatabase. A ked budem mat sebavedomie, pustim sa do Doctrine :)

Dakujem este raz … pekny den

Šaman
Člen | 2666
+
0
-

Jenom tě hned na začátku varuji, že dokumentace k NDatabase je málo a jsou i důležité finty, které jsou jen na fóru, nebo na přednášce

Editoval Šaman (19. 3. 2013 15:44)