Dibi – vazby medzi tabulkami
- d4ncul
- Člen | 41
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
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:)