Zobrazení kategorie příspěvku přes spojovací tabulku
- kazlik
- Člen | 19
Zdravím
Začínám s nette, pomalu se jim prokousávám a zkouším udělat stránku
s příspěvky a každý příspěvek může být v několika kategoriích,
viz
Mám 3 tabulky, viz obrázek
post – tabulka s příspěvky
post_cat – propojovací tabulka
cat – tabulka s kategoriemi
Podařilo se mi vypsat jak obsah příspěvku tak i id kategorií, ale potřebuji pomoct k zobrazení jména kategorie
v PostPresener:
public function renderShow($postId)
{
$this->template->post = $this->database->table('post')->get($postId);
$this->template->postCats = $this->template->post->related('post_cat');
}
show.latte
{block content}
<p><a n:href="Post:default">← zpět na výpis příspěvků</a></p>
<div class="date">{$post->created|date:'F j, Y'}</div>
<h1 n:block="title">{$post->title}</h1>
<ul>
<li>Kategorie</li>
<ul n:foreach="$postCats as $postCat">
<li>{$postCat->cat_id}</li>
</ul>
</ul>
<div class="post">{$post->content}</div>
Zkoušel jsem {$postCat->cat_id}
upravit na
{$postCat->cat_id->name}
, ale nešlo to. Potřebuji poradit
jak zobrazit jméno dané kategorie. Předem díky za odpověď
Editoval kazlik (5. 3. 2015 20:49)
- kazlik
- Člen | 19
Ještě se chci zeptat, jak to přidat do výpisu článků.
PostPresenter
public function renderDefault()
{
$this->template->posts = $this->database->table('post')
->order('created DESC')
->limit(5);
foreach($this->template->posts as $post){
$this->template->postCats = $post->related('post_cat');
}
}
default.latte
{block content}
<h1 n:block="title">Články</h1>
<div n:foreach="$posts as $post" class="post">
<div class="date">{$post->created|date:'F j, Y'}</div>
<h2><a n:href="Post:show $post->id">{$post->title}</a></h2>
<ul n:foreach="$postCats as $postCat">
<li>{$postCat->cat->name}</li>
</ul>
<div>{$post->content}</div>
</div>
Zobrazí i u 1. článku kategorie posledního (2.)
Vím, že by to asi nějak mělo být v poli ale nevím jak přesně na to
- Tabetha
- Člen | 140
V tejto časti iteruješ nad všetkými kategoriami, zo všetkých článkov… V Presentri si naplnil pole postCats pre všetky články a iteruješ toto pole pri každom článku :)
<ul n:foreach="$postCats as $postCat">
<li>{$postCat->cat->name}</li>
</ul>
môžeš to upraviť na
<ul n:foreach="$post->related('post_cat') as $postCat">
<li>{$postCat->cat->name}</li>
</ul>
ak sa teda nemýlim :) a snád nie :)
Editoval Tabetha (6. 3. 2015 9:08)