latte related přes dvě tabulky

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

Zdravím … jeden rychlej dotaz:

Mám v DB tabulky v kaskádě za sebou. V šabloně v cyklu foreach potřebuju sčítat sumy dat uživatelů.

Asi nějak takto

{foreach $uzivatele as $uzivatel}
	{$uzivatel->jmeno} -
	Počet kontaktů: {$uzivatel->related('kontakty')->count()}
	počet záznamů: {$uzivatel->related('kontakty')->related('zaznamy')->count()}
	<br>
{/foreach}

To 2 krát related mi hodí chybu (Call to undefined method). Jde nějak v šabloně vyřešit dvakrát related ? … Prostě potřebuju počet všech záznamů všech kontaktů daného uživatele. Zkoušel jsem i $uzivatel->related(‚kontakty:zaznamy‘)->count() ale to také nejde. Můžu to vyřešit v presenteru že celej dataset z DB hodím do pole a přídám do něj co potřebuju, ale zajímalo by mě jestli to jde řešit v šabloně když už jsem na to narazil.

Díky za osvětlení.

Mysteria
Člen | 797
+
0
-

Related vrací kolekci, takže na ní musíš použít foreach, z hlavy třeba takhle:

{foreach $uzivatele as $uzivatel}
    {$uzivatel->jmeno} -
    Počet kontaktů: {$uzivatel->related('kontakty')->count()}
	{var $count = 0}
    {foreach $uzivatel->related('kontakty') as $kontakt}
		{php $count += $kontakt->related('zaznamy')->count()}
	{/foreach}
	Počet záznamů: {$count}
    <br>
{/foreach}
sejmor
Člen | 63
+
0
-

jasně … tak jsem to v případě jedné kaskády vyřešil také. Ono v reálu jde o to, že já mám takto za sebou 4 tabulky a 4 cykly se mi nořit nechtěj.

Mysteria
Člen | 797
+
0
-

Tak na to už by se asi hodilo vlastní SQL a použít query, když se jedná o takovéhle složitější věci.