pouziti related nebo ref?
- lucasso
- Člen | 7
Zdravim,
potrebuji postrcit ohledne jednoho dotazu.
Mam tabulku news (id, created_when, active,…) a tabulku news_desc
(id_news_desc, news_id, name,…). Pokud v metode actionEdit udelam
$editNew = $this->content->table('news')->get($postId);
vypisu si data z tabulky news dle postId, potrebuji k tomu pridat jeden zaznam
z relacni tabulky news_desc, kde news_id je cizi klic. Pokud
pouziji ref (coz by asi v mem pripade bylo nej), tak se to
zacne vazat na primarni klic tabulky news_desc. Pokud udelam pres related a
podminku na to, aby to byl skutecne jen jeden zaznam, tak sice je, ale musim ho
vypsat pres foreach.
Jde nejak udelat, abych dostal podobny vysledek, jako kdyz vypisuji z tabulky news, abych nemusel foreachem? Delam to v presenteru a vypisuji tim hodnoty z db do formularovych prvku.
Diky
- lucasso
- Člen | 7
caine – diky, to pomohlo, jsem pitomej… Nicmene v tuto chvili, kdyz to pouziju, jak pises, musim jeste vybirat sloupce pres select(), protože mi to vybere vsechny sloupce z tabulky news_desc, ale tabulka news se jen spojuje a nemam tam sloupce typu active, created, evented,… samozrejme to vypisu pres select a bezi to bez problemu, ale treba pro zjednoduseni respektive pro psani mene kodu by pro me byla zajimavejsi metoda bez toho vypisovani selectu…
thm – ne, takhle to prave spojit nejde, to jsem zkousel a navic je to presne to, co psal caine, ref je z druhe strany.
- Caine
- Člen | 216
Asi by si chtel, aby NDBT generovalo SELECT * FROM...
misto
SELECT news_desc.* FROM...
? To ale nejde, protoze Nettysti pouzivaj
jako nazev pro prim. klice „id“ a ne „id_news_desc“. Proto, kdyz by se
vybiralo pres *
, tak by se sloupce se stejnyma nazvama navzajem
prepisovaly, a u IDcek by to zpusobilo paseku (na foru uz par lidi s timhle
problem melo, takze na to pozor). Z toho duvodu mas lepsi si predem vyjmenovat,
ktery sloupce chces vybirat, a pokud by byly dva stejny, tak si je i sam
aliasovat.
Ale pokud ti to hodne vadi si to vypisovat, tak jeste muzes udelat toto:
$newDescPost = $this->content->table('news_desc')->where('news_id', $postId)-fetch();
...
$created = $newDescPost->news->created;
PS: radsi bych si zaved nejakej model (napr neco jako $this->newsModel->getNewsRecord($postId)), kde si pripravis, co potrebujes, nez si takhle vytvarel selectiony v presenterech, dela to pak kod hodne neprehlednej..