Nette Database -sql dotaz

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

Dobrý den,

narazil jsem na zajímavou situaci, Mám tabulku Produkt(id, nazev, …) a Tabulku Obrazek(id, cestaKSouboru,…), Produkt můmě mít víc obrázků, obrázek patří vždy jednomu produktu.

Potřebuju vytvořit v nette database dotaz pro spojení Produktu a Obrazku.

V produktu není cizí klíč na položky obrázku a proto si nevím rady jak dotaz zapsat.

Ono se tu ani žádné joinování nehodí.

Četl jsem, že správně by se místo spojení tří tabulke měly napsat 3 sql dotazy – na každou tabulku zvlášť, ale nevím jak zapsat sql dotaz na získání obrázků zvlášť.

Model

public function getAll()
{
   return $this->database->table("product");
}

presenter

public function renderProducts()
{
   $this->template->products = $this->productRepository->getAll();
}

sablona

Vypis produktu
foreach{$products as $product}
   {$product->name}
   // tady bych potreboval vypsat vsechny obrazky (resp. cesty k obrazkum) , ktere jsou v tabulce Obrazek pro dany produkt
{/foreach}

Víte někdo jak dodělat zobrazování obrázků?

petr.jirous
Člen | 128
+
0
-

Tak pridej do tabulky Obrazek cizí klíč do tabulky Produkt, např. takto:
Obrazek(.., Produkt_id)
a pak tvuj kod bude vypadat následovně:

Vypis produktu
foreach{$products as $product}
   {$product->name}
   // tady bych potreboval vypsat vsechny obrazky (resp. cesty k obrazkum) , ktere jsou v tabulce Obrazek pro dany produkt
   {foreach $products->related('Obrazek') as $obrazek}

   {/foreach}
{/foreach}