Počet iterací ve foreach a jejich limit

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

Zdravím, opět přicházím pro radu …

v šabloně mám toto

{foreach $kategorie as $kategorie}
                    <div class="col-md-5 kategorie">
                        {foreach $eshop->limit(15) as $k}
                            {if $k->kategorie_id == $kategorie->id}
                                <span n:foreach="$k->related('soubory.eshop_id')->where('nahled', '1') as $galery" class="thumb">
                                    <a class="images fancybox thumb-default" rel="ligthbox" n:href="Stranka:kategorie, $kategorie->slug">
                                        <img class="img-rounded img-thumbnail thumbs" src="{$basePath}{$galery->cesta}" alt="{$galery->nazev}">
                                    </a>
                                </span>
                            {/if}
                        {/foreach}
                        <div class="col-lg-12">
                            <a n:href="Stranka:kategorie, $kategorie->slug"><h3>{$kategorie->nazev}</h3></a>
                        </div>
                    </div>
                {/foreach}

Ten limit mě vybere 15 záznamů (samý problém dělá i breakIf) …

Jde mi o to, že když mám víc jak 1 kategorii zobrazí se stále 15 záznamů (fotek) k první kategorii, ale už ne k druhé, třetí atd …

Jak napsat to, aby to omezení bylo pouze pro danou kategorii? Takže 1 kategorie = 15 zaznamu?

Děkuji …

Editoval wicked (12. 11. 2014 20:33)

janpecha
Backer | 75
+
+1
-

Zásadní problém bych viděl v {foreach $kategorie as $kategorie} – pole i prvek jsou ukládány do stejné proměnné. A limit by měl spíše aplikován na <span n:foreach="$k->related('soubory.eshop_id')->where('nahled', '1'), nyní omezuješ spíš počet kategorií, než počet náhledů (ale možná kecám, s Nette\Database jsem nepracoval už dost dlouho).

Editoval janpecha (13. 11. 2014 14:08)

wicked
Člen | 290
+
0
-

Tak jsem to upravil takto

{foreach $kategorie as $kat}
    <div class="col-md-5 kategorie">
        {foreach $eshop as $e}
            {if $e->kategorie_id == $kat->id}
                {foreach $e->related('soubory.eshop_id')->where('nahled', '1') as $galery}
                    <span class="thumb">
                        <a class="images fancybox thumb-default" rel="ligthbox" n:href="Stranka:kategorie, $kat->slug">
                            <img class="img-rounded img-thumbnail thumbs" src="{$basePath}{$galery->cesta}" alt="{$galery->nazev}">
                        </a>
                    </span>
                {/foreach}
            {/if}
        {/foreach}
        <div class="col-lg-12">
            <a n:href="Stranka:kategorie, $kat->slug"><h3>{$kat->nazev}</h3></a>
        </div>
    </div>
{/foreach}

Ale už mě nejde použít ten limit na ten <span>

Nemůžu přijít na to, jak proste pr okazdou kategorii zobrazit 15 obrazků …

Michal Vyšinský
Člen | 608
+
0
-

Zkus za $e->related('soubory.eshop_id')->where('nahled', '1') dát ještě ->limit(15)

wicked
Člen | 290
+
0
-

To jsem samozdřejmě zkoušel, ale pořád to vypisuje všechny zaznamy a ne jen 15

wicked
Člen | 290
+
0
-

Napadá Vás ještě prosím někoho něco?

Děkuji

wicked
Člen | 290
+
0
-
{foreach $e->related('soubory.eshop_id')->where('nahled', '1') as $galery}

Zde vůbec nefunguje limit …