Nette\Database a propojení tabulek
- Ecrazit
- Člen | 16
Zdravím,
jsem s Nette úplný začátečník a potřebuji poradit. Po quickstartu se
snažím napsat jednoduchý systém na vkládání článků.
Mám dvě tabulky v databázi. Tabulku clanky a tabulku clanky_img. V tabulce clanky jsou textové prvky jednotlivých článků a v tabulce clanky_img jsou uložené cesty a popisky obrázků. Je tam sloupec clanek_id, kde je reference na sloupec id v tabulce clanky. Ke článku může být přiřazen žádný, jeden nebo neomezeně obrázků.
Pro práci s oběma tabulkami mám vytvořené modely a teď potřebuji udělat v presenteru výpis článků. Vždy 10 článků s obrázkem na stránce… stránkování zatím neřeším. Mám tedy:
class HomepagePresenter extends BasePresenter {
public $articles;
public function actionDefault() {
$this->articles = $this->context->createClanky()->where('deleted <> 1')->limit(10);
}
public function renderDefault() {
$this->template->articles = $this->articles;
}
}
Takto mi do do templatu pošle textová data, ale já to ještě nějakým způsobem potřebuji propojit s obrázky (thumbnaily), náležícími ke každému článku a mít je u každého článku dostupné v šabloně (pokud k článku nějaké náleží). Jak to mám provést?
Editoval Ecrazit (18. 5. 2012 15:59)
- jtousek
- Člen | 951
Přečti si dokumentaci Nette\Database, to co potřebuješ se řeší pomocí metody related:
{foreach $articles as $article}
{foreach $article->related('clanky_img') as $img}
{* ... *}
{/foreach}
{/foreach}
Mimochodem nedoporučuji mixování češtiny a angličtiny (tabulka „clanky“ a proměnná „$articles“), lépe pojmenovávat vše striktně anglicky.