potřeba naplnit parametry funkce datama z templates
- qteck
- Člen | 164
Ahoj,
skutečně nevím jak to vhodně nazvat :d.
O co jde.
Snažím se vypsat založené galerie na profilu uživatele. Galerie vypíšu, ale chci k ním vypsat i počet fotek v galerii.
vytvořil jsem si tedy dvě metody v modelu:
function getGalleries($id)
{
return $this->conn->table('galleries')->where('id_author', $id);
}
function getTotalOfPicsInGallery($id, $id_gallery)
{
return $this->conn->table('gallery_pictures')->where('id_autor',$id)
->where('id_gallery', $id_gallery)->count('*');
}
jak je vidno ptřebuji naplnit dva parametry. první by nebyl problém, je to id uživatele a dostávám ho z url. Problém je ten druhý parametr, který dostávám z metody GetGalleries() k němuž se dostávám až v template:
<h2 class="fotografieH2">Vytvořené galerie</h2>
{foreach $galleries as $gallery}
<div class="gallery_section">
<h3><a href="{link UkazGalerii:}">{$gallery->name}</a></h3>
<a class='group1' href="{$basePath}/js/colorbox/content/daisy.jpg" style="" title="AHOJ"><img src="{$basePath}/js/colorbox/content/daisy.jpg" alt="fotos"></a>
<div class="content">{..-->.....<--.....} obrázků</div>
<div class="created">1.2.2014</div>
</div>
{/foreach}
id galerie dostanu tedy v proměnné $gallery->id jak tu funkci tedy dostat sem? abych mohl udělat třeba $galleries->getTotalOfPics($id,$gallery->id)
Nebo jak to řešit efektivněji?
Děkuji.
Díky.
- greeny
- Člen | 405
Ten related
„magicky“ zjistí, že ho voláš v cyklu,
takže si nejdřív vytáhne všechny IDčka těch galerií a pak zavolá
SELECT * FROM ... WHERE id IN (1,2,3,5,8,12,...)
. Vnitřně pak
každý řádek dotazu vrátí k danému volání related.
Jinak určitě je lepší řešení s related, tam máš konstantní počet dotazů.