Volání funkce přímo ze šablony

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

Ahoj,

rád bych vás požádal o radu. Mám výpis např. článků, které přes foreach vypisuji v šabloně. Potřeboval bych ale, abych si u každého článku vypsal i např. do jaké kategorie patří. Sloupec kategorie je pouze id, tudíž bych ho potřeboval vzít a zeptat se funkce ať mi vrátí název kategorie podle id. Jenže bohužel netuším, jak zavolat funkci, kterou mám v modelu přímo ze šablony.

Takže bych potřeboval podle ID, které získávám v šabloně dostat do funkce modelu, který řeší články/kategorie a vrátí mi zpět co chci.

Předem děkuji za rady.

qteck
Člen | 164
+
0
-

mrfrostikcz napsal(a):

Ahoj,

rád bych vás požádal o radu. Mám výpis např. článků, které přes foreach vypisuji v šabloně. Potřeboval bych ale, abych si u každého článku vypsal i např. do jaké kategorie patří. Sloupec kategorie je pouze id, tudíž bych ho potřeboval vzít a zeptat se funkce ať mi vrátí název kategorie podle id. Jenže bohužel netuším, jak zavolat funkci, kterou mám v modelu přímo ze šablony.

Takže bych potřeboval podle ID, které získávám v šabloně dostat do funkce modelu, který řeší články/kategorie a vrátí mi zpět co chci.

Předem děkuji za rady.


logiku by si měl mít vřešenou už v modelu a do šablony tlačit už jenom ryzí data. Já bych to asi všechno naházel do polí a pak to jenom vyházel v té šabloně. nevýhodou je, že tam budeš mít pár cyklů navíc, ale zase lepší než tahat z view do modelu.

Oli
Člen | 1215
+
0
-

Tak mám taky asi 2 případy, kdy v šabloně šahám do modelu, ale tohle by neměl být tvůj případ. Pokud máš nějakou tabulku např articles a categories a jsou spojeny přes cizí klíč (napr category_id), tak je to jednoduchy.

Tam se potom dostaneš přímo z té article. Pak by to vypadalo nějak takto:

{foreach $articles as $article}
	{$article->category->name}
	{$article->category_id} == {$article->category->id}
{/foreach}

Tohle je všechno i v dokumentaci, kdo s kým a proč…

mrfrostikcz
Člen | 17
+
0
-

Super, děkuji za rady. Zkusím se ještě podívat přímo na model, abych si vracel veškerá data rovnou a nemusel jsem se pak ještě ptát na zbylá.

Díky.